C# 列出对象中的.NET对象
我不知道如何访问对象内部的对象。我读到的所有内容都是关于C# 列出对象中的.NET对象,c#,powershell,C#,Powershell,我不知道如何访问对象内部的对象。我读到的所有内容都是关于Get Member选项的,但这是为了列出方法/属性,而不是类中的类,这似乎是理所当然的,或者你应该知道它或其他什么 我想获得System.Net中的类,或者我想列出的任何类: WebRequest Sockets WebClient 我已经知道我可以用 [System.Net.WebRequest] | gm -Static 或者不使用-Static作为常规方法。尝试一下 [System.AppDomain]::CurrentDo
Get Member
选项的,但这是为了列出方法/属性,而不是类中的类,这似乎是理所当然的,或者你应该知道它或其他什么
我想获得System.Net
中的类,或者我想列出的任何类:
WebRequest
Sockets
WebClient
[System.Net.WebRequest] | gm -Static
或者不使用-Static
作为常规方法。尝试一下
[System.AppDomain]::CurrentDomain.GetAssemblies() |
% { $_.GetTypes() } |
? { $_.IsPublic -and $_.Namespace -ne $null -and $_.Namespace.StartsWith("System.Net")
当然,您可以根据需要更改筛选,并在必要时添加排序我不清楚您在问什么。是否要枚举命名空间中的类?在实际对象中嵌套对象?我猜他把名称空间误认为类,但我不确定:)在名称空间中列出.NET对象?给定
System.NET
,我猜它是一个名称空间,我想得到WebRequest
,Sockets
etcIf你省略,而$.IsClass
你也会得到一些enum
类型。类似于[System.AppDomain]::CurrentDomain.getAssemblys()|%{$|.GetTypes()}|?{$\.IsPublic-和$\.Namespace-eq“System.Net”}
是的,因此我写了他可以根据自己的需要更改过滤。但是,当他问“我想在System.Net中获取类…”时,我以一种过滤的方式编写了这个示例。我注意到,询问者列出的Sockets
,不是一种类型,而是一个嵌套的名称空间。那么也许他想要|?{$\.IsPublic-和$\.Namespace-ne$null-和$\.Namespace.StartsWith(“System.Net”)}
。难道没有更简单的方法吗?@JeppeStigNielsen似乎你猜对了:)采纳了你的建议-thx!