Как создать обработчик событий C #, который можно обрабатывать в IronPython?
Как создать обработчик событий C #, который можно обрабатывать в IronPython?
Обратите внимание, что я использую 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?