我是C#.NET开发人员/架构师,并且了解它使用对象(.NET对象)而不仅仅是流/文本。
我希望能够使用PowerShell在我的.NET(C#库)程序集上调用方法。
如何在PowerShell中引用程序集并使用程序集?
答案 0 :(得分:52)
使用PowerShell 2.0,您可以使用内置的Cmdlet Add-Type。
您只需要指定dll的路径即可。
Add-Type -Path foo.dll
此外,您可以将内联C#或VB.NET与Add-Type一起使用。 @“语法是HERE字符串。
C:\PS>$source = @"
public class BasicTest
{
public static int Add(int a, int b)
{
return (a + b);
}
public int Multiply(int a, int b)
{
return (a * b);
}
}
"@
C:\PS> Add-Type -TypeDefinition $source
C:\PS> [BasicTest]::Add(4, 3)
C:\PS> $basicTestObject = New-Object BasicTest
C:\PS> $basicTestObject.Multiply(5, 2)
答案 1 :(得分:47)
查看博客文章 Load a Custom DLL from PowerShell :
以一个简单的数学库为例。它有一个静态Sum方法和一个实例Product方法:
namespace MyMathLib
{
public class Methods
{
public Methods()
{
}
public static int Sum(int a, int b)
{
return a + b;
}
public int Product(int a, int b)
{
return a * b;
}
}
}
在PowerShell中编译并运行:
> [Reflection.Assembly]::LoadFile("c:\temp\MyMathLib.dll")
> [MyMathLib.Methods]::Sum(10, 2)
> $mathInstance = new-object MyMathLib.Methods
> $mathInstance.Product(10, 2)