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

怎么把一个MethodInfo转换成EventHandler啊。。。。
通过反射我得到一个函数的MethodInfo,这个函数实际上是个EventHandler,如下
public void clickEventHandler(object sender,EventArgs arg)

我用type.GetMethod("clickEventHandler")得到了MethodInfo,但我现在需要把这个method做为
EventHandler传给另一个函数,怎么转换?强制类型转换不行啊

------解决方案--------------------
可以用Delegate的静态方法CreateDelegate()来创建一个委托:
C# code
 
object target = this;                                  // 委托所在的对象,如果不是当前对象,要改动
Delegate del = Delegate.CreateDelegate(typeof(EventHandler), target, methodInfo);    // 创建一个EventHandler类型的委托
EventHandler myMethod = del as EventHandler;
button2.Click += myMethod;                              // 传给另一个函数,或订阅一个事件

------解决方案--------------------
顶1楼的
------解决方案--------------------
探讨
怎么给分???