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

本文介绍了如何在PowerShell环境中通过C#代码创建自定义对象类型。通过定义C#类并使用`Add-Type` cmdlet加载代码,可以实现更灵活的对象属性设置,虽然这种方法不常用,但在特定场景下十分有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值