如何从Powershell访问从.NET事件返回的对象args

时间:2013-06-13 09:15:13

标签: c# .net powershell

好的,所以我对PowerShell很新,并且使用它来调用我创建的.NET dll,到目前为止我都尝试使用Register-ObjectEvent cmdlet。我可以很好地附加到我创建的自定义.NET事件,但似乎无法访问从事件传递的对象!

以下是我正在使用的委托和事件声明

delegate void ReportResult(ProgressUpdate update);
event Delegates.ReportResult ReportProgressEvent

然后在代码

中触发事件的调用
if (ReportProgressEvent != null)
   ReportProgressEvent(update);

如何阅读powershell中的'update'对象?

1 个答案:

答案 0 :(得分:1)

您可以在-Action scriptblock中使用$ event来访问该事件。例如,

$watcher = New-Object System.IO.FileSystemWatcher -Property @{Path = 'C:\Temp' }
$action = { Write-Host (Split-Path -Path $event.sourceEventArgs.FullPath) }

Register-ObjectEvent -InputObject $watcher -EventName Created -SourceIdentifier FileCreated -Action $action