Project

General

Profile

Function Compile-Csharp

function Compile-Csharp ([string] $code, [Array]$References)

Compile à la volée du code Csharp (C#), le code est généré en mémoire et pas sur disque.

 #Cette exemple compile le code de déclaration de trois délégués.

  #Déclare le code C# à compiler 
$code = @'
using System;
using System.Runtime.InteropServices;

namespace PSDynamic
{
     //Déclare des délégués, semblables à des signature de méthodes
    public delegate int Add(int x, int y);
    public delegate void Affiche(string s);
    public delegate string Concatene(string s1, string s2);

}
'@
Compile-CSharp $code

 #Référence l'assembly, chargée dans le domaine d'application de PowerShell,
 #afin de créer un délégué de type :    int Add(int x, int y)
$Delegate = New-Delegate PSDynamic.Add {$args[0] + $args[1]}

 #Appel le délégué créé
$Result=$Delegate.Invoke(4,5)

$Result