Bonjour,

Je viens vers vous car j'ai un problème que je ne sais résoudre.

J'ai une List<MethodInfo> que j'appelle grâce à un Invoke(), comme ceci.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
foreach (var meth in lesMethodesQuilFautInvoker)
{
      object[] parameters = { mesParametresDeMethodes };
      meth.Invoke(m_handler, parameters);
}
Ici mesParametresDeMethodes est quelque chose d'arbitraire que j'ai mis pour montrer que ce sont les paramètres.

Chaque méthode est construit de la même façon, et certaines d'entre eux lance des événements, comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
TextReceived(null, new TextReceivedEventArgs(text));
Ici j'ai mis un événement TextReceived, mais ça peut être un événement qui porte un nom totalement différent, selon la méthode appelée.

Ma question est, comment m'abonner à cet événement sachant que mon objet "m_handler" est lui aussi créé par reflexion.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
m_handler = (IHandler) Activator.CreateInstance(typeOfTheHandler);
Je ne peux pas faire de m_handler.TextReceived + = laMethode puisque m_handler, au moment de la compilation est un IHandler et c'est au moment de l'exécution qu'il se transformera dans le type d'objet héritant de IHandler.

Comment puis-je capter cet événement ?

Merci beaucoup pour votre aide, là je sèche complètement,