mlh*_*Dev 4 .net reflection powershell watin
我基本上喜欢在Powershell中使用反射,在动态找到我想使用标准powershell命令调用的方法之后,我最终得到了一个MemberDefinition对象,并没有太多关于如何调用它的线索.我不能肯定,所以如果你有经验,你可以说不要这样做.我知道我可以进入Assembly命名空间,但不知道我是否可以这样做:
$method = $ie | get-member -type method | ? { $_.name -eq 'span' }
invoke-member $ie $method
Run Code Online (Sandbox Code Playgroud)
该$method变量的类型为Microsoft.PowerShell.Commands.MemberDefinition,这是否可能?
谢谢,马修
听起来你对.NET非常熟悉,为什么不直接下拉并直接使用反射呢?
PS> $d = Get-Date
PS> $t = $d.GetType()
PS> $t.InvokeMember("ToUniversalTime", "Public,InvokeMethod,Instance", $null, $d, $null)
Saturday, March 31, 2012 3:10:51 AM
Run Code Online (Sandbox Code Playgroud)
FWIW,您可以随时进行"老式"反思(如果不清楚则提及).
例如:
# get some object
$proc = get-process | select -first 1
# get its type and pick a method
$method = $proc.gettype().getmethods() | ?{ $_.name -eq 'tostring' }
# invoke
$method.Invoke($proc, $null)
Run Code Online (Sandbox Code Playgroud)