Comment convertir le code C # en un Script PowerShell?

Je dois régulièrement convertir un extrait de code C# existant/.Fichier CS à un script PowerShell. Comment pourrais-je automatiser ce processus?

Alors que je suis conscient qu'il existe des méthodes qui peuvent convertir un .fichier cs à une cmdlet , Je ne suis intéressé que par la conversion du code C # en un script ou un module.

30
demandé sur Community 2010-01-27 02:19:20

3 réponses

Je sais que vous cherchez quelque chose qui convertit en quelque sorte C# directement en PowerShell, mais je pensais que c'était assez proche pour le suggérer.

Dans PS v1, vous pouvez utiliser une DLL. net compilée:

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

Dans PS v2, vous pouvez ajouter du code C # directement dans PowerShell et l'utiliser sans "convertir" en utilisant Add-Type (copié directement à partir de 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)
63
répondu James Pogran 2018-05-05 18:00:22

Il y a un réflecteur add - in pour PowerShell qui vous permettra de voir le script PowerShell correspondant pour les méthodes statiques sur les classes

Il y a un bon poste avec l'exemple: http://blogs.msmvps.com/paulomorgado/2009/09/17/powershell-for-the-net-developer/.

12
répondu MagicAndi 2015-02-05 22:00:04

Adam Discroll a Créé un convertisseur basé sur Roslyn, et il fournit même un convertisseur de code en ligne - il semble fonctionner pour des scripts simples, mais a des problèmes avec les membres statiques ou les classes.

1
répondu White hawk 2017-07-13 15:09:12