如何将C#代码转换为PowerShell脚本?

Mag*_*ndi 32 c# powershell powershell-2.0

我经常需要将现有的C#代码段/ .CS文件转换为PowerShell脚本.我怎样才能自动化这个过程?

虽然我知道有一些方法可以将.cs文件转换为cmdlet,但我只对将C#代码转换为脚本或模块感兴趣.

Jam*_*ran 69

我知道你正在寻找能够以某种方式将C#直接转换为PowerShell的东西,但我认为这足以建议它.

在PS v1中,您可以使用已编译的.NET DLL:

PS> $client = new-object System.Net.Sockets.TcpClient
PS> $client.Connect($address, $port)
Run Code Online (Sandbox Code Playgroud)

在PS v2中,您可以直接将C#代码添加到PowerShell中,并使用它而无需使用Add-Type进行"转换"(直接从MSDN复制)

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)
Run Code Online (Sandbox Code Playgroud)

  • @JamesProgran这种代码的性能如何? (2认同)

Mag*_*ndi 12

PowerShell有一个Reflector 加载项,允许您在类上查看相应的PowerShell脚本以获取静态方法

这个例子有一个很好的帖子:http://blogs.msmvps.com/paulomorgado/2009/09/17/powershell-for-the-net-developer/.