2010-09-13 4 views
1

Je suis en train de boucler à travers toutes les souscriptions d'événements pour un objet qui : INotifyPropertyChanged Ceci est aussi loin que je peux obtenir:Obtenez événement Abonnements avec réflexion

EventInfo e1 = typeof(INotifyPropertyChanged).GetEvent("PropertyChanged", 
    BindingFlags.Instance | BindingFlags.Public); 

Maintenant, comment pourrais-je obtenir tous les abonnements à cette événement pour un objet INotifyPropertyChanged donné?

Merci!

Répondre

3

Il n'y a pas de moyen simple de créer une solution générique pour cela, car vous n'avez aucun moyen de savoir quel peut être le magasin de sauvegarde d'un événement donné. Même s'il est possible de déduire le magasin de sauvegarde, ce n'est pas vraiment une solution robuste ou à faible coût. Si vous pouviez partager votre objectif final, il serait peut-être possible de suggérer une approche plus facile à gérer.

+0

Eh bien, mon but final était de pouvoir faire une boucle sur les événements en cours, et d'enlever celui qui convient. La façon dont je l'avais initialement, j'ajoutais des gestionnaires d'événements qui étaient des méthodes anonymes, mais je suppose qu'il est évident maintenant que je vais avoir besoin de quelque chose d'un peu plus robuste, donc je peux dire O.PropertyChanged + = Foo; et plus tard O.PropertyChanged - = Foo; Merci pour votre réponse. –

Questions connexes