我经常需要将现有的C#代码段/ .CS文件转换为PowerShell脚本。我怎样才能自动化这个过程?
虽然我知道有些方法可以convert a .cs file to a cmdlet,但我只对将C#代码转换为脚本或模块感兴趣。
答案 0 :(得分:68)
我知道你正在寻找能够以某种方式直接将C#转换为PowerShell的东西,但我认为这足以建议它。
在PS v1中,您可以使用已编译的.NET DLL:
PS> $client = new-object System.Net.Sockets.TcpClient
PS> $client.Connect($address, $port)
在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)
答案 1 :(得分:12)
有一个Reflector add-in for PowerShell,可以让您在类上看到静态方法的相应PowerShell脚本
示例中有一篇很好的帖子:http://blogs.msmvps.com/paulomorgado/2009/09/17/powershell-for-the-net-developer/。
答案 2 :(得分:1)
Adam Discroll有created基于Roslyn的转换器,他甚至提供online code converter - 它似乎适用于简单的脚本,但是静态成员或类有问题。
答案 3 :(得分:0)
PowerShell Pro Tools for Visual Studio具有在PowerShell脚本中转换C#代码的功能。