GetInvocationList 委托链表

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

即可判断事件是否注册成功。

posted on 2015-04-09 10:54  Kenny_qiu  阅读(395)  评论(0)    收藏  举报