Embedded Mono: Как поднять событие в C++?

Я работаю над приложением, в которое встроен Mono, и хочу поднять событие из слоя C++ в слой C#. Вот что у меня есть:

 void* itr(NULL);
 MonoEvent* monoEvent;
 while(monoEvent= mono_class_get_events(klass, &itr))
 {
     if(0 == strcmp(eventName, mono_event_get_name(monoEvent)))
         raiseMethod = mono_event_get_raise_method(monoEvent);
 }

Однако raiseMethod всегда возвращается как NULL. Если посмотреть на структуру MonoEvent, похоже, что методы add и remove были заполнены, но не raiseMethod? Есть ли что-то особенное, что я должен сделать, чтобы заставить это работать?

EDIT: Если это имеет значение, вот (базовая) форма делегата, класса и событий, которые я использую в слое C#.

public delegate void MyHandler(uint id);
public class SimpleComponent : NativeComponent
{
    public event MyHandler OnEnter;
    public event MyHandler OnExit;
}
8
задан Krizz 31 January 2012 в 23:36
поделиться