Я хочу иметь возможность узнать, связано ли событие или нет. Я осмотрелся, но нашел только решения, связанные с изменением внутренностей объекта, содержащего событие. Я не хочу этого делать.
Вот некоторый тестовый код, который, как я думал, будет работать:
// Create a new event handler that takes in the function I want to execute when the event fires
EventHandler myEventHandler = new EventHandler(myObject_SomeEvent);
// Get "p1" number events that got hooked up to myEventHandler
int p1 = myEventHandler.GetInvocationList().Length;
// Now actually hook an event up
myObject.SomeEvent += m_myEventHandler;
// Re check "p2" number of events hooked up to myEventHandler
int p2 = myEventHandler.GetInvocationList().Length;
К сожалению, вышесказанное совершенно неверно. Я думал, что каким-то образом "invocationList" в myEventHandler будет автоматически обновляться, когда я подключаю к нему событие. Но нет, это не так. Длина этого всегда возвращается как один.
Можно ли как-то определить это извне объекта, содержащего событие?