有没有一种方法可以检索事件的委托?

3
我想知道是否可以检索类对象的事件委托列表?
1个回答

4
如果您自己实现了事件,那么可以在委托上调用GetInvocationList(假设您有权访问它,即要从另一个类获取调用列表,则委托字段必须是public或调用列表必须从public方法返回)。
如果它是自动事件,则字段为private,您只能从类内部调用GetInvocationList。您需要这样做并从public方法返回结果,以从另一个类获取列表。

1
我想补充一点,对象在订阅/取消订阅方法中可以随意选择存储事件监听器的多路广播委托字段,没有必要强制要求这样做。如果它选择按事件名称使用Dictionary<string, Delegate>(键)或List<EventHandler>,会怎么样呢? - Ani
@Ani:当然。但是如果你不这样做,基本情况(调用所有订阅者)就不那么简单了,所以我们必须谈论非常高级的用法。 - Jon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接