【发布时间】:2017-05-04 23:35:34
【问题描述】:
我目前正在开发一个 EventManager 类,以确保没有事件被连接到死的 WCF 双工客户端,并且还控制防止从同一个客户端到一个事件的多个连接。
现在基本上,我一直在尝试将事件委托传递给一个函数,该函数将像这样控制分配。
var handler = new SomeEventHandler(MyHandler);
Wire(myObject.SomeEventDelegate, handler);
这样称呼:
private void Wire(Delegate eventDelegate, Delegate handler)
{
// Pre validate the subscription.
eventDelegate = Delegate.Combine(eventDelegate, handler);
// Post actions (storing subscribed event delegates in a list)
}
更新
SomeEventDelegate 包装器的代码是:
public Delegate SomeEventDelegate
{
get { return SomeEvent; }
set { SomeEvent = (SomeEventHandler) value; }
}
event SomeEventHandler SomeEvent;
显然委托没有返回给 myObject.SomeEventDelegate 而且我无法从该方法返回委托,因为我也需要一些验证。 您对如何执行此操作有任何想法吗?
【问题讨论】:
-
您可以使用 += 组合代表
-
C# 事件为您生成一个隐藏的委托。要访问此活动,请参阅:stackoverflow.com/questions/1129517/…。
标签: c# events parameters delegates