2010-09-13 58 views
1

我试图遍历所有事件订阅的对象是: INotifyPropertyChanged这是据我可以得到:获取事件订阅与反思

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

现在,我将如何去获得所有订阅到事件为给定的INotifyPropertyChanged对象?

谢谢!

回答

3

没有任何简单的方法可以为此创建通用解决方案,因为您无法知道任何给定事件的后备存储可能是什么。虽然试图推断支持存储是可能的,但它不完全是一个强大的或低成本的解决方案。如果您可以分享您的最终目标,则有可能提出更易于管理的方法。

+0

那么我的最终目标是能够循环浏览当前事件,并删除相应的事件。我原来的方式是添加匿名方法的事件处理程序,但我想现在显然我需要一些更强大的东西,所以我可以说O.PropertyChanged + = Foo;然后后来O.PropertyChanged - = Foo;感谢您的回答。 – 2010-09-13 16:55:05