在运行时通过名称获取通用类型

时间:2019-12-06 10:20:25

标签: powershell

我想知道为什么我不能使用泛型定义来检索类型,或者更多我该怎么做。

我的例子:

[System.Collections.Generic.List`1].FullName

--> Outputs: System.Collections.Generic.List`1

[System.Collections.Generic.List`1].AssemblyQualifiedName

--> Outputs: System.Collections.Generic.List`1, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

但是两者

[System.Type]::GetType("System.Collections.Generic.List`1")

[System.Type]::GetType("System.Collections.Generic.List`1, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")

即使在mscorlib中找到List的类型,也不输出任何内容。有人可以解释一下我如何通过名称查找此类型和其他通用类型吗?

1 个答案:

答案 0 :(得分:1)

`是PowerShell中的转义字符,您需要以字符串对其进行转义。 这些都可以使用:

[System.Type]::GetType("System.Collections.Generic.List``1")
[System.Type]::GetType('System.Collections.Generic.List`1')