You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过字符串获取PowerShell自定义类对应的System.Type实例

问题原因

[System.Type]::GetType() 方法只会检索已加载到.NET运行时的公开注册程序集中的类型,PowerShell自定义类是编译到当前会话专属的动态内部程序集中,没有全局注册的命名空间标识,因此直接传入类名无法匹配到对应类型。

可用解决方案

方案1:直接使用PowerShell类型字面量(最简便)

如果类名固定已知,直接用PowerShell原生类型语法即可直接获取System.Type实例:

$MyType = [InstanceName]

该方法会直接在当前PowerShell会话的类型缓存中检索自定义类,效率最高。

方案2:动态类名字符串转换

如果类名是存储在变量中的动态字符串,直接将字符串强转为[Type]即可:

$className = "InstanceName"
$MyType = [Type]$className

PowerShell的类型转换逻辑会自动在当前会话的自定义类型列表中匹配对应类。

方案3:使用PSTypeName API(兼容复杂场景)

如果需要处理带命名空间、跨模块的自定义类,可以用PowerShell原生的PSTypeName API获取类型:

$className = "InstanceName"
$MyType = [System.Management.Automation.PSTypeName]::new($className).Type

内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:36:08