Я работаю над приложением, в которое встроен 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;
}