首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

知道一个事件,如何知道当前有哪些类的哪些方法注册了这个事件呢。

2012-03-30 
知道一个事件,怎么知道当前有哪些类的哪些方法注册了这个事件呢。。。比如我有一个变量a,它的类里定义了publi

知道一个事件,怎么知道当前有哪些类的哪些方法注册了这个事件呢。。。
比如我有一个变量a,它的类里定义了
public event EventHandler Click;

我有没有办法知道通过 a.Click+=... 注册过的委托所在的类和方法名?

[解决办法]
从类的內部可以,GetInvocationList就可以得到事件登记列表。
从外部则不能直接(也不应该)得到,这跟银行客户不应该拿到其他客户的通讯地址道理是一样的。
[解决办法]
反射Event的list
不过这样做就没意思了
从设计者的角度来考虑,event就是为了屏蔽委托者的具体信息,隐藏实现,那如果你需要知道,不如自己做个delegate的list

热点排行