如何获取开放类型的成员,例如System.Nullable<T>
?
我试过了:
> [System.Nullable[T]] | Get-Member
但是这会导致以下错误:
Unable to find type [T].
At line:1 char:1
+ [System.Nullable[T]] | Get-Member
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (T:TypeName) [], RuntimeException
+ FullyQualifiedErrorId : TypeNotFound
例如,如果我尝试将其用于封闭类型Nullable<int>
,我看不到该类型的任何方法。相反,它向我展示了TypeName: System.RuntimeType
的成员。
> [System.Nullable[int]] | Get-Member
如果我尝试System.DateTime
,也会发生同样的情况。或者参考类型,例如System.String
。
我假设这是因为Get-Member
期望对象作为其输入而不是类型名称。因此它将我指定的类型名称视为System.RuntimeType
的对象。
1。如何查看某个类型的成员?
此外,我也希望看到其中包含的静态成员。所以,当我像这样在对象实例上调用Get-Member
时:
4 |获取会员
我希望静态成员也能出现。
答案 0 :(得分:1)
首先,要解决没有类型参数的泛型类型,您需要使用以下语法:
[Nullable`1]
第二个问题是如果没有社区模块,从类型中获取成员有点迟钝。你可以这样做
[Nullable`1].DeclaredMembers | Format-Table Name, MemberType
您需要将Format-Table
中的属性调整为您想要查看的内容。
您可能需要查看Reflection或Poke社区模块,以便更轻松一些。