Подтвердить что ты не робот

Как преобразовать код С# в PowerShell Script?

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

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

4b9b3361

Ответ 1

Я знаю, что вы ищете что-то, что каким-то образом преобразует С# прямо в PowerShell, но я думал, что это достаточно близко, чтобы предложить его.

В PS v1 вы можете использовать скомпилированную .NET dll

PS> $client = new-object System.Net.Sockets.TcpClient
PS> $client.Connect($address, $port)

В PS v2 вы можете добавить код С# непосредственно в 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)

Ответ 3

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