De même à cette question:C# 2.0 Dynamique Abonnement événement avec la signature d'événement connu
Je voudrais être en mesure de câbler un gestionnaire d'événements à un événement tiré d'un objet créé dynamiquement. Je fais cela pour vérifier que mon JavaScript et tout autre code non-.NET est capable de se connecter aux événements des objets.
Ma signature d'événement dans l'objet est:
délégué MediaItemFellbackDelegate void (int id, nom de chaîne, chemin de chaîne);
Voici mon code 'DynamicHost':
public delegate void MediaItemFellbackDelegate(int id, string name, string path);
public void MediaItemFellback(int id, string name, string path)
{
}
private void HandleEvent(string eventName, Delegate handler)
{
try
{
BindingFlags bindingFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;
EventInfo mediaItemFellback = m_PlayerType.GetEvent(eventName, bindingFlags);
mediaItemFellback.AddEventHandler(m_Player, handler);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
HandleEvent("MediaItemFellback", new MediaItemFellbackDelegate(this.MediaItemFellback));
mais je me retrouve à l'exception:
objet de type 'DynamicHost.Main + MediaItemFellbackDelegate' ne peut pas être convertie en type 'Player.MediaItemFellbackDelegate'.
dans l'appel AddEventHandler().
Bien sûr, ils sont différents types, mais les signatures sont identiques.
Qu'est-ce qui ne va pas ici?
You rock! Tous les exemples que j'ai pu trouver descendent dans la génération IL, donc merci pour votre réponse. Tu gères! – JBRWilkinson