2
如何創建一個可以在IronPython中處理的C#事件處理程序?如何創建一個可以在IronPython中處理的C#事件處理程序?
請注意,我正在使用IronPython 2.0.1。我能夠處理沒有問題的系統類的事件(例如Window.KeyDown),但是當我嘗試定義我自己的C#事件時,我試圖從IronPython掛鉤時引發異常。
拋出的異常是ArgumentTypeException,它有消息「無法添加到私人事件」。消息似乎很奇怪,考慮到我想要勾選的事件是公開的。
我的C#類看起來是這樣的:
class Foo
{
...
public event EventHandler Bar;
}
我的IronPython安裝程序代碼如下所示:
ScriptEngine engine = Python.CreateEngine();
ScriptRuntime runtime = engine.Runtime;
ScriptScope scope = runtime.CreateScope();
ScriptSource source = engine.CreateScriptSourceFromFile("Test.py");
Foo bar = new Foo();
scope.SetVariable("Foo", bar);
source.Execute(scope); <-- Exception is thrown here.
我的IronPython的腳本是這樣的:
def BarHandler(*args):
pass
Foo.Bar += BarHandler
有誰知道如果我這樣做錯了?
或者IronPython出了問題?