如何使用PowerShell引用.NET程序集
我是一名C#.NET开发人员/架构师,并且明白它使用对象(.NET对象)而不仅仅是stream/文本。
我想能够使用PowerShell调用我的.NET(C#库)集合的方法。
如何在PowerShell中引用程序集并使用程序集?
看看博客文章从PowerShell中加载自定义DLL :
以一个简单的math库为例。 它有一个静态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)
使用PowerShell 2.0,您可以使用内置的Cmdlet添加types。
你只需要指定dll的path。
Add-Type -Path foo.dll
此外,您可以使用内联C#或VB.NET与添加types。 @“语法是一个HEREstring。
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)