最近发现C#程序初始化时在构造函数中,偶尔出现事件注册不成功。后查资料发现有GetInvocationList 这么一个获取类中的委托链表的函数,
使用方法如下:
1、在需委托的类(Class1)中增加下列的静态函数
public delegate void RequestHandler();
public static event RequestHandler OnRequestHandler;
public static Delegate[] InvocationList() { return OnRequestHandler.GetInvocationList(); }
2、在初始化委托事件时进行判断其length:
Class1.OnRequestHandler += new Class1.RequestHandler(RequestHandler);
//进行循环判断 foreach (Delegate dlg in Class1.InvocationList()) { if (dlg.Method.Name == "RequestHandler") break; else Class1.OnCallRequestHandler += new Class1.RequestHandler(RequestHandler); }
即可判断事件是否注册成功。
转载于:https://www.cnblogs.com/kennyqiu/p/4409056.html