我经常需要将现有的C#代码片段/.CS文件转换为PowerShell脚本。如何自动化这个过程?
虽然我知道有方法可以将.cs文件转换为cmdlet,但我只想将C#代码转换为脚本或模块。
我经常需要将现有的C#代码片段/.CS文件转换为PowerShell脚本。如何自动化这个过程?
虽然我知道有方法可以将.cs文件转换为cmdlet,但我只想将C#代码转换为脚本或模块。
我知道你正在寻找一些可以将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)
有一个Reflector 的PowerShell插件,它可以让你查看类的静态方法所对应的PowerShell脚本。
这里有一篇很好的文章,包含了示例:http://blogs.msmvps.com/paulomorgado/2009/09/17/powershell-for-the-net-developer/。