Como criar um manipulador de eventos C # que possa ser manipulado no IronPython?

Como criar um manipulador de eventos C # que possa ser manipulado no IronPython?

Observe que estou usando o IronPython 2.0.1. Eu sou capaz de manipular eventos de classes de sistema sem problemas (por exemplo, Window.KeyDown), mas quando eu tento definir meu próprio evento C #, uma exceção é levantada quando eu tento conectá-lo a partir do IronPython.

A exceção lançada é ArgumentTypeException e tem a mensagem "não é possível adicionar ao evento privado". A mensagem parece estranha, considerando que o evento que estou tentando ligar é público.

Minha classe c # se parece com isso:

class Foo
{
    ...

    public event EventHandler Bar;
}

Meu código de configuração do IronPython é semelhante ao seguinte:

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.

Meu script IronPython é assim:

def BarHandler(*args):
    pass

Foo.Bar += BarHandler

Alguém sabe se estou fazendo isso errado?

Ou há algo errado com o IronPython?

questionAnswers(1)

yourAnswerToTheQuestion