GetInvocationList 委托链表

mac2022-06-30  92

最近发现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

最新回复(0)