有没有办法在使用Get-Member时获取Method MemberType的参数?
例:
Get-Process | Get-Member -MemberType Method
Run Code Online (Sandbox Code Playgroud)
我在这个例子中需要的是列表中每个成员的参数和参数类型.
这样做的目的是获取COM +对象的成员,参数和参数类型,我必须为其创建文档.所以一个例子不能特定于.net.
我将把成员和参数信息传递到剃刀模板中以生成适当的html.
编辑:一个更好的例子就是这个......
$comObj = New-Object -ComObject COMAdmin.COMAdminCatalog
$comObj | Get-Member -MemberType Method
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我需要为返回的每个方法获取参数名称(如果有的话).
Get-Member比PowerShell命令更适合探索.NET类型.有关命令参数的简单"视图",请尝试以下操作:
Get-Command Get-Process -Syntax
Run Code Online (Sandbox Code Playgroud)
有关参数的详细信息,请尝试:
Get-Command Get-Process | Select -Expand ParameterSets
Run Code Online (Sandbox Code Playgroud)
如果您正在寻找有关.NET类型成员参数的更多详细信息,请尝试以下操作:
C:\PS> Get-Process | Get-Member -Name WaitForExit
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
WaitForExit Method bool WaitForExit(int milliseconds), void WaitForExit()
Run Code Online (Sandbox Code Playgroud)
对于COM对象,这可能会更受欢迎.PowerShell并不总是获取COM对象的类型元数据.顺便说一下,我为你在问题中列出的COM对象获取参数信息(参数类型):
C:\PS> $comObj = New-Object -ComObject COMAdmin.COMAdminCatalog
C:\PS> $comObj | gm QueryApplicationFile
TypeName: System.__ComObject#{790c6e0b-9194-4cc9-9426-a48a63185696}
Name MemberType Definition
---- ---------- ----------
QueryApplicationFile Method void QueryApplicationFile (string, string, string, bool, bool, SAFEARRAY(Variant))
Run Code Online (Sandbox Code Playgroud)
我担心这是PowerShell在这种情况下会给你的所有信息.