在PowerShell中调⽤C#代码创建对象类型
在PowerShell中可以使⽤多种⽅式来创建⾃定义类型,在很少之前我有写过⼀些以最通⽤的⽅式来创建PowerShell类型。
今天我们要说下如何⽤C#代码的⽅式来创建对象,虽然以这种⽅式创建对象很少会被⽤到,但是如果对于设置⼀些对象类型来说,这种⽅式或许能更加深⼊以及灵活些,让我们⼀起来看下,下⾯的例⼦:
$CScode = @"
public class MyCustomObject
{
public string OSVersion{get; set;}
public string Model {get; set;}
}
"@
Add-Type -TypeDefinition $CScode -Language CSharpVersion3
$OperatingSystem = Get-WmiObject -Class win32_OperatingSystem -ComputerName localhost
$ComputerSystem = Get-WmiObject -Class win32_ComputerName -ComputerName localhost
$props = @{OSVersion = $OperatingSystem.version
Model = $del }
$Objs = New-Object -TypeName MyCustomObject -Property $props
$Objs
其实很简单,我们使⽤here string内部定义了⼀个以C#代码为基础的类,名为MyCustomObject,这个类型⾥⾯包含了⼀些我们⾃⼰定义的属性,全都是以string字符串为主。
然后我们使⽤add-type cmdlet来加载我们⾃⼰定义的代码段:
Add-Type -TypeDefinition $CScode -Language CSharpVersion3
shell代码
等添加⾃定义类型后,我们就可以按照平时定义对象的⽅式给我们需要输出的属性类型赋值了:
$OperatingSystem = Get-WmiObject -Class win32_OperatingSystem -ComputerName localhost
$ComputerSystem = Get-WmiObject -Class win32_ComputerName -ComputerName localhost
$props = @{OSVersion = $OperatingSystem.version
Model = $del }
$Objs = New-Object -TypeName MyCustomObject -Property $props
基本就是这样,这个⽅法虽然会有那么⼀点⿇烦,不过如果对于我们创建⼀些特有的属性还是⼗分有⽤的。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。