[英]How to get invocation list of an explicit event in C#
我可以使用以下內容定義事件:
public event msg_callback event_PingMessage;
並使用以下命令獲取事件的調用列表:
MulticastDelegate event_delegate = (MulticastDelegate)this.GetType().GetField(event_name,
BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.GetField).GetValue(this);
foreach (var handler in event_delegate.GetInvocationList())
{
// use handler() here
}
但是,如果我將event_PingMessage
定義為顯式事件,例如:
private msg_callback explicitEvent;
public event msg_callback event_PingMessage
{
add
{
explicitEvent += value;
int i = 0;
}
remove
{
explicitEvent -= value;
}
}
MulticastDelegate event_delegate = ...
行引發異常:
Object reference not set to an instance of an object.
如何為我的顯式事件.GetInvocationList()
?
您可以只使用explicitEvent.GetInvocationList()
。 explicitEvent
等效於您的GetField(...)
調用返回的類似字段的事件的字段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.