1
是否有可能使用Reflection是C#来触发一个事件?说我有这样的情况:C#创建一个触发事件的委托?
public delegate void SomeEventHandler(object sender, BenArgs e);
class EventHub
{
public event SomeEventHandler SOME_EVENT;
public void fireEvent(String eventName)
{
SomeEventHandler evt = (SomeEventHandler) Delegate.CreateDelegate(typeof(SomeEventHandler), this, eventName);
evt.Invoke(null, null);
}
}
这意味着如果我叫
EventHub.fireEvent("SOME_EVENT")
那么它使事件枢纽火SOME_EVENT?我已经试过这个,只是得到例外。
这主要是我的好奇心,我知道在这种情况下,我可以轻松地在没有反射的情况下触发事件。
哈!有用!非常感谢。任何原因,我想使用动态调用只是调用? – Ben 2010-10-29 03:57:12
// @本:干杯。 'System.Delegate'不声明'Invoke'方法。 – Ani 2010-10-29 04:03:11
令人惊叹!刚才我尝试用'BindingFlags.Instance'只是因为我认为这个事件是'public'。但是我得到了'FieldInfo [0]'。为什么? – 2010-10-29 04:03:59