是否可以使用PowerShell cmdlet查看类的所有成员?

问题描述 投票:1回答:1

正如本主题的标题所示,我正在寻找有关如何使用PowerShell查看类的所有成员的建议,无论这些成员是否隐藏。有没有办法只使用PowerShell cmdlet执行此操作?

举个例子,假设我正在寻找System.AppDomain类的成员。如果我尝试使用Get-Member查看类成员,则缺少CurrentDomain属性:

([AppDomain] | Get-Member -View All -Force) | ? {$_.Name -eq 'CurrentDomain'}

但是,如果我直接使用.NET类,我可以找到此属性,例如:

(([AppDomain]::CurrentDomain.GetAssemblies() | ? {$_.Location -Match 'mscorlib'}).gettypes() | ? {$_.Name -like 'AppDomain'}).GetMembers() | ? {$_.Name -eq 'CurrentDomain' }

使用此示例作为我之前问题的框架,是否可以通过在任何版本的PowerShell中使用默认情况下可用的cmdlet来返回有关AppDomain类的CurrentDomain属性的信息?

powershell
1个回答
3
投票

这会获取有关CurrentDomain的信息:

[system.appdomain] | Get-Member -static | where-object {$_.name -eq "CurrentDomain"}

您可以阅读此内容以获取有关Get-Member cmdlet如何工作的更多信息。实质上,静态开关提供特定类的对象的静态方法和属性。离开静态开关,仅提供有关该类对象实例的信息。见Get-Member

在您的情况下,您正在查找有关没有实例的特定类的信息,因为您尚未创建对象。运行Get-Member cmdlet时,可以查看Definition属性,看看它们是使用static一词表示的静态方法

© www.soinside.com 2019 - 2024. All rights reserved.