Powershell从字符串中生成System.Type [重复]

Posted

技术标签:

【中文标题】Powershell从字符串中生成System.Type [重复]【英文标题】:Powershell generate System.Type out of String [duplicate] 【发布时间】:2021-12-18 20:48:40 【问题描述】:

我正在动态生成某种类型的 .net 对象,例如 $MyType=([System.Type]::GetType("System.String") 这适用于标准 .net 对象。

我现在创建了一个这样的自定义类

class InstanceName

    [String] hidden $Val
    InstanceName([String]$CVal)
    
        $this.Val=$CVal
    

这里,这个方法不起作用,因为 powershell 找不到类型。 $MyType=([System.Type]::GetType("InstanceName")

知道如何获得自定义 PS 类的 System.Type 吗?

谢谢!

【问题讨论】:

$InstanceName = [InstanceName] 简而言之:如果您提前知道类型名称,请使用 类型文字 ([SomeType])。如果类型名称存储在 string 中,请将其强制转换为 [type][type] 'SomeType'(或使用 'SomeType' -as [type])。有关详细信息,请参阅链接的副本。 【参考方案1】:

使用-as 类型转换运算符:

$instanceNameType = 'InstanceName' -as [type]

# test the type reference
$instanceNameType::new("")

【讨论】:

[type]'InstanceName' 也可以。

以上是关于Powershell从字符串中生成System.Type [重复]的主要内容,如果未能解决你的问题,请参考以下文章

PowerShell 中的 JSON 数组

从日历java中生成月份字符到变量中

ruby - 如何从字符串数组中生成可能的字母顺序组合?

从 Powershell 获取 Azure Active Directory 访问令牌

如何在 JavaScript 中使用逗号分隔符从字符串中生成数字(“23,21”---> 23,21)

使用 C++ 字符串类函数从较长的原始基因组字符串中生成“基因子字符串”