C#, Comment le trouver, si un événement est accroché

Je veux être en mesure de savoir si un événement est branché ou non. J'ai regardé autour, mais j'ai seulement trouvé des solutions qui a impliqué la modification de la structure interne de l'objet qui contient l'événement. Je ne veux pas faire ça.

Voici un code de test que j'ai pensé de travail:

//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;

Unfort ci-dessus est tout à fait tort. Je pensais qu'en quelque sorte les "invocationList" dans myEventHandler serait automatiquement mise à jour lorsque j'ai accroché un événement à elle. Mais non, ce n'est pas le cas. La longueur de cette revient toujours comme un.

Est-il de toute façon à déterminer ce à partir de l'extérieur de l'objet qui contient l'événement?

InformationsquelleAutor Nick | 2009-07-15