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.
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)
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/.
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.