2017-08-24 75 views
0

如何获得开放类型的成员,例如System.Nullable<T>Get-Member for System.NullableType <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 | Get-Member

我想静态成员也出现了。

+0

'[System.Nullable] | Get-Member -Force; [System.Nullable] | Get-Member -Static'? –

+0

@AnsgarWiechers谢谢。那个'静态'开关给了我静态成员。是否有可能只是给定类型名称的类型的成员,而不给出该类型的对象? –

回答

1

首先,解决了泛型类型,而不需要使用此语法的类型参数:

[Nullable`1] 

的第二个问题是从类型入门成员是没有社区模块有点钝。你可以这样做

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

你要在Format-Table属性调整到你想要看到的东西。

您可能希望查看ReflectionPoke社区模块以使其更容易一些。