日期:2014-05-18  浏览次数:20759 次

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

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

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