2016-07-18 32 views
3

我不知道如何訪問對象內的對象。我讀的所有內容都是關於Get-Member選項的,但是這是爲了列出方法/屬性,而不是類中的類,它似乎被認爲是理所當然的,或者你應該知道它或什麼。列出對象內的.NET對象

我想進去System.Net類,或者我要列出任何類:

  • WebRequest
  • Sockets
  • WebClient
  • …

我已經知道我可以證明該方法具有內部

[System.Net.WebRequest] | gm -Static 

或不-Static的一般方法。

+0

這不是我清楚你的要求。你想枚舉名稱空間中的類嗎?嵌套在實際對象中的對象? –

+0

我猜他錯誤的類命名空間,但我不知道:) – DAXaholic

+0

列出.NET對象裏面*名稱空間*? – Default

回答

1

試試這個

[System.AppDomain]::CurrentDomain.GetAssemblies() | 
    % { $_.GetTypes() } | 
    ? { $_.IsPublic -and $_.Namespace -ne $null -and $_.Namespace.StartsWith("System.Net")  

當然,你可以改變過濾根據您的需求,並添加排序,如果必要

+0

如果你省略了'-and $ _。IsClass',你也會得到一些'enum'類型。類似於[[System.AppDomain] :: CurrentDomain.GetAssemblies()| %{$ _。GetTypes()} | ? {$ _。IsPublic - 和$ _。命名空間-eq「System.Net」}' –

+0

是的,我寫了他可以改變過濾到他的需要。但是當他問「我想獲得System.Net中的類......」時,我以這種方式編寫了這個示例,以便過濾該 – DAXaholic

+0

我注意到,提交者列出的「套接字」不是一種類型,而是一種嵌套的名稱空間。所以也許他想要'| ? {$ _。IsPublic和$ _。Namespace -ne $ null - 和$ _。Namespace.StartsWith(「System.Net」)}'。 –