在PowerShell中调用C#代码创建对象类型

来源:互联网 发布:智能家居网络协议 编辑:程序博客网 时间:2024/05/17 04:05

在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 = $ComputerSystem.model }$Objs = New-Object -TypeName MyCustomObject -Property $props$Objs

其实很简单,我们使用here string内部定义了一个以C#代码为基础的类,名为MyCustomObject,这个类型里面包含了一些我们自己定义的属性,全都是以string字符串为主。

然后我们使用add-type cmdlet来加载我们自己定义的代码段:

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 = $ComputerSystem.model }$Objs = New-Object -TypeName MyCustomObject -Property $props

基本就是这样,这个方法虽然会有那么一点麻烦,不过如果对于我们创建一些特有的属性还是十分有用的。

0 0
原创粉丝点击