【发布时间】:2015-11-12 07:29:34
【问题描述】:
我需要将新方法附加到静态类的现有事件。
这是我的“猫”静态类,不能更改它,因为它是第 3 方。我需要添加新方法来触发同一事件myEvent。 This 问题显示了如何为非静态类执行此操作。但我不确定如何处理静态类。有人帮忙吗?
public static class Cat
{
internal static event EventHandler myEvent;
public static init()
{
....
....
}
}
class Dog
{
public static void init()
{
EventInfo eventInfo = typeof(Cat).GetEvent("myEvent");
if (eventInfo != null)
{
Delegate handler = Delegate.CreateDelegate(eventInfo.EventHandlerType, , newMethod); // I'm stuck here
eventInfo.AddEventHandler(, handler); // I'm stuck here
}
}
static void newMethod()
{
}
}
如果myEvent 是公开的,我可以使用Cat.myEvent+= new EventHandler(newMethod);。但不幸的是internal
【问题讨论】:
-
你有异常吗?你得到什么例外?
-
我不知道
eventInfo.AddEventHandler(arg1,newMethod);的第一个参数arg1是什么,因为我的类是静态的
标签: c# reflection event-handling