1
我想在運行時連接一個通用委託,可以查看下面的示例代碼。通過反射連接通用委託
但是綁定代理與事件Delegate.CreateInstance
我得到一個ArgumentException
('錯誤綁定到目標方法')。
class MyClass
{
public event EventHandler<MyEventArgs> OnRequest;
}
class MyEventArgs : EventArgs { }
class Program
{
static void Main(string[] args)
{
MyClass obj = new MyClass();
EventInfo eventInfo = obj.GetType().GetEvent("OnRequest");
Type delegateType = eventInfo.EventHandlerType;
MethodInfo methodInfo = typeof(Program).GetMethod("OnRequestReceived");
Delegate del = Delegate.CreateDelegate(delegateType, methodInfo);
}
public static void OnRequestReceived(object o, EventArgs e) { }
}
工作得很好!感謝和擁抱 – user1619447