我的問題是,如果我可以確定事件的名稱通過EventHandler類型的參數傳遞?隨着一些代碼變得更加清晰:從EventHandler確定事件名稱<T>在C#
public void RaiseEvent<T>(EventHandler<T> eventToRaise, T args) where T : EventArgs, IXmlConvertable
{
Log(eventToRaise.Method.Name, args.ToXElement());
ThreadPool.QueueUserWorkItem((e) => eventToRaise(this, args));
}
public event EventHandler<ProductLeftEventArgs> ProductLeftEvent = delegate { };
正如你可以看到,我想創建,不僅調用了事件的異步的方法,同時也記錄了行動。 IXmlConvertable是一個自定義接口,用於記錄。我打電話的方式是這樣的:
this.RaiseEvent(this.ProductLeftEvent, new ProductLeftEventArgs() { ... });
我想獲得的是一個帶有「ProductLeftEvent」的字符串。不幸的是,eventToRaise.Method.Name給出了字符串「DeliverEvent」。你認爲有可能實現這個名字嗎?另外值得一提的是,我在分配處理程序時使用了弱事件管理器。
什麼是'DeliverEvent'?它與你發佈的代碼有什麼關係? –
這是一個很好的問題。我不知道。我唯一知道的就是'eventToRaise.Method.Name'屬性的值。 –