Как преобразовать код C # в скрипт PowerShell? - PullRequest
31 голосов
/ 27 января 2010

Мне регулярно приходится преобразовывать существующий фрагмент кода C # / файл .CS в скрипт PowerShell. Как я мог автоматизировать этот процесс?

Хотя мне известно, что существуют методы, которые могут преобразовать файл .cs в командлет , меня интересует только преобразование кода C # в скрипт или модуль.

Ответы [ 3 ]

68 голосов
/ 27 января 2010

Я знаю, что вы ищете что-то, что каким-то образом конвертирует 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)
12 голосов
/ 27 января 2010
1 голос
/ 13 июля 2017

Adam Discroll создал конвертер на основе Roslyn, и он даже предоставляет онлайн-конвертер кода - похоже, он работает для простых сценариев, но имеет проблемы с, например, статическими членами или классы.

...