¿Cómo creo un controlador de eventos de C # que pueda manejarse en IronPython?

¿Cómo creo un controlador de eventos de C # que pueda manejarse en IronPython?

Tenga en cuenta que estoy usando IronPython 2.0.1. Puedo manejar eventos de clases del sistema sin problemas (por ejemplo, Window.KeyDown) pero cuando intento definir mi propio evento de C #, surge una excepción cuando intento conectarlo desde IronPython.

La excepción lanzada es ArgumentTypeException y tiene el mensaje "no se puede agregar al evento privado". El mensaje parece extraño considerando que el evento que estoy tratando de enganchar es público.

Mi clase de C # se ve así:

class Foo
{
    ...

    public event EventHandler Bar;
}

Mi código de configuración de IronPython se ve así:

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.

Mi script de IronPython se ve así:

def BarHandler(*args):
    pass

Foo.Bar += BarHandler

¿Alguien sabe si estoy haciendo esto mal?

¿O algo está mal con IronPython?

Respuestas a la pregunta(1)

Su respuesta a la pregunta