2017-08-24 66 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社區模塊以使其更容易一些。