如果我有一个从 EventArgs 继承的类型(我们称之为 EventArgs1),还有一堆从 EventArgs1 继承的类(我们统称为 EventArgsX),然后是一堆类型的事件EventHandler<EventArgsX>
,如果在运行时我通过了其中一个事件的 EventInfo,我想添加一个事件处理程序,该处理程序需要 EventArgs1 类型的第二个参数(例如MyEventHandler(object sender, EventArgs1 e)
)我该怎么做?
如果事件是类型,EventHandler<EventArgs1>
那么我会这样做:
eventInfo.AddEventHandler(this, new EventHandler<EventArgs1>(MyEventHandler));
但是,当事件是 type 时,这会引发异常EventHandler<EventArgsX>
,并且由于我在编译时不知道 EventArgsX 是什么,因此我不能简单地新建一个EventHandler<EventArgsX>
如果我确实知道在编译时将处理程序添加到哪个事件,那么这个完全可以接受:
MyEvent += MyEventHandler
但我根本不知道如何在运行时执行此操作。有什么建议么?