В PowerShell можно динамически скомпилировать класс, написав его на C#, и затем создать его экземпляры.
Пример:
PS C:\Users\user> Add-Type -Language CSharpVersion3 -TypeDefinition @"
public class CompanyInfo
{
public CompanyInfo() {}
public string Name { get; set; }
public string Address { get; set; }
public int Index { get; set; }
public CompanyInfo(string name, string address, int index) {
Name = name;
Address = address;
Index = index;
}
}
"@
$a = New-Object -TypeName CompanyInfo
$a.Name = "GPSM"
$a.Address = "Russia, Saint-Petersburg, Yablochkova str. 7"
$a.Index = 199198
$b = New-Object -TypeName CompanyInfo -ArgumentList "RedCompany", "Russia, Moskow, Red Square", 777777
$a | Format-List
$b | Format-List
Результат работы этого кода будет таким:
PS C:\Users\user> $a | Format-List
Name : GPSM
Address : Russia, Saint-Petersburg, Yablochkova str. 7
Index : 199198
PS C:\Users\user> $b | Format-List
Name : RedCompany
Address : Russia, Moskow, Red Square
Index : 777777
Очень интересные примеры, относящиеся к использованию командлета Add-Type можно получить, набрав это:
Get-Help Add-Type –example
Как видим в примерах из справки - исходники могут быть не только на C#, но и на F#, VB.Net, а так же на JScript.
Комментариев нет:
Отправить комментарий