我创建了一个基于事件的系统,其中一个类将提供一堆事件,另一个类及其成员方法可以作为其事件处理程序附加到第一个类,并且......我只想做这样的事情
if(isMethodCompatibleToEvent(...))
{
connectMethodToEvent(...)
}
通过反射,这就是连接的完成方式:
void connectMethodToEvent(object methodTarget, MethodInfo mi,
object eventTarget, EventInfo ei)
{
Delegate handler = Delegate.CreateDelegate(ei.EventHandlerType, methodTarget, mi);
ei.AddEventHandler(eventTarget, handler);
}
如果该方法与事件不兼容,它将引发异常,为了解决这个问题,我想在创建方法委托之前创建一些检查,但是如何?
bool isMethodCompatibleToEvent(object methodTarget, MethodInfo mi,
object eventTarget, EventInfo ei)
{
// HOW ?
}