【发布时间】:2010-04-08 09:02:48
【问题描述】:
我需要知道哪些处理程序订阅了 ObservableCollection 类的 CollectionChanged 事件。我找到的唯一解决方案是在事件的委托上使用 Delegate.GetInvocationList() 。问题是,我无法让反射找到编译器生成的委托。 AFAIK 委托与事件同名。我使用了以下代码:
PropertyInfo notifyCollectionChangedDelegate = collection.GetType().GetProperty("CollectionChanged", BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy);
【问题讨论】:
标签: c# reflection compiler-construction delegates observablecollection