编写可在 powershell 中调用的 powershell class
Writing a powershell class callable in powershell
使用 Cmdlet,(and/or PSCmdlet),我可以创建
[Cmdlet(VerbsCommunications.Read, "Blah", SupportsShouldProcess = true)]
public class BlahBlah : PSCmdlet
{
/// ...
}
然后,在 powershell 中,我可以调用命令
import-module .\Blah.dll -Verbose
Read-Blah
...
一切都很好。
但是我想创建一个 class 而不是 function 这样我就可以得到一个对象然后使用它在 powershell
类似
import-module .\Blah.dll -Verbose
$myClass = New-Object Blah
$myClass.Read
$myClass.Save -File x.txt
$myClass.BlahBlah
...
以上可以用C#完成吗?如果可以,怎么做?
如果您想从 .NET 程序集导入 class,您需要使用 Add-Type
,而不是 Import-Module
:
Add-Type -Path .\Blah.dll
此时,您的程序集中定义的所有 public class 都可以从 PowerShell 获得。
使用 Cmdlet,(and/or PSCmdlet),我可以创建
[Cmdlet(VerbsCommunications.Read, "Blah", SupportsShouldProcess = true)]
public class BlahBlah : PSCmdlet
{
/// ...
}
然后,在 powershell 中,我可以调用命令
import-module .\Blah.dll -Verbose
Read-Blah
...
一切都很好。
但是我想创建一个 class 而不是 function 这样我就可以得到一个对象然后使用它在 powershell
类似
import-module .\Blah.dll -Verbose
$myClass = New-Object Blah
$myClass.Read
$myClass.Save -File x.txt
$myClass.BlahBlah
...
以上可以用C#完成吗?如果可以,怎么做?
如果您想从 .NET 程序集导入 class,您需要使用 Add-Type
,而不是 Import-Module
:
Add-Type -Path .\Blah.dll
此时,您的程序集中定义的所有 public class 都可以从 PowerShell 获得。