System.NullableType <t>的Get-Member

时间:2017-08-24 20:13:27

标签: powershell powershell-v4.0

如何获取开放类型的成员,例如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。如何查看某个类型的成员?

  1. 此外,我也希望看到其中包含的静态成员。所以,当我像这样在对象实例上调用Get-Member时:

    4 |获取会员

  2. 我希望静态成员也能出现。

1 个答案:

答案 0 :(得分:1)

首先,要解决没有类型参数的泛型类型,您需要使用以下语法:

[Nullable`1]

第二个问题是如果没有社区模块,从类型中获取成员有点迟钝。你可以这样做

[Nullable`1].DeclaredMembers | Format-Table Name, MemberType

您需要将Format-Table中的属性调整为您想要查看的内容。

您可能需要查看ReflectionPoke社区模块,以便更轻松一些。