具有未知类型参数

时间:2017-06-13 05:50:35

标签: c#

我希望能够为给定的EventInfo添加通用事件处理程序。它有可能吗?

用例如下:我有一个对象。对于这个对象的每个事件,我想添加一个执行某些操作的处理程序。通过反射收集对象事件。这样的代码我用来添加处理程序:

var evt = obj.GetType().GetEvent("OnAdd");
var publisher = new EventPublisher();
EventHandler<object> h = publisher.Publish;
evt.AddEventHandler(obj, h);

// later 
public class EventPublisher
{
    public void Publish(object sender, object payload)
    {
    }
}

// somewhere in obj
public event EventHandler<int> OnAdd;

但它仅适用于EventHanlder<object>。例如。 EventHandler<int>无法转换为EventHandler<object>

无论如何,我可以将任何EventHandler转换为EventHandler<object>或以其他方式添加事件处理程序吗?

0 个答案:

没有答案