2010-09-13 63 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