【问题标题】:How to convert C# code to a PowerShell Script?如何将 C# 代码转换为 PowerShell 脚本?
【发布时间】:2011-01-09 18:00:54
【问题描述】:

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

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

【问题讨论】:

标签: c# powershell powershell-2.0


【解决方案1】:

我知道您正在寻找能够以某种方式将 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)

【讨论】:

  • 我可以将自定义库 C# 与 helpers 和 utils 类一起使用吗?
  • 如何在 PowerShell 中获得 .Network 支持?这是否可以在没有安装 .netframework 的 Windows 映像的全新机器上工作?如何在 powershell 中获得 .net 框架支持?
【解决方案2】:

有一个 Reflector add-in for PowerShell 可以让您查看类上静态方法的相应 PowerShell 脚本

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

【讨论】:

    【解决方案3】:

    PowerShell Pro Tools for Visual Studio 具有在 PowerShell 脚本中转换 C# 代码的功能。

    【讨论】:

      【解决方案4】:

      Adam Discroll 有 created 一个基于 Roslyn 的转换器,他甚至提供了一个 online code converter - 它似乎适用于简单的脚本,但在静态成员或类方面存在问题。

      【讨论】:

      • 那个代码转换器似乎没有处理上面的代码,而且它的问题跟踪器充满了类似的抱怨,有些是教科书级别的代码。
      • 在线转换器链接已失效
      • 链接断开...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-09
      • 1970-01-01
      • 1970-01-01
      • 2012-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多