全球事件的替代品

时间:2011-01-10 04:52:30

标签: c# events event-handling

我正在开发一个FOSS服务总线。

开发人员需要的一件事是挂钩发生的某些事件。目前我有一个静态ServiceBusEvents类,它暴露了所有可能感兴趣的事件,例如:

public static event BeforeEnqueueMessageDelegate BeforeEnqueueMessage = delegate { };
public static event BeforeDequeueMessageDelegate BeforeDequeueMessage = delegate { };
public static event AfterEnqueueMessageDelegate AfterEnqueueMessage = delegate { };
public static event AfterDequeueMessageDelegate AfterDequeueMessage = delegate { };

活动数量有限,但我不知道这是否是最好的方式。

是否有“更清洁”的方法来完成同样的事情?

2 个答案:

答案 0 :(得分:1)

只有1个事件,并将第一个参数设为事件名称。这将使您的图书馆面向未来,因为新事件不会改变现有界面。 缺点是任何参数在使用之前都需要进行铸造。 (或者,为事件使用基类,人们可以改为使用它的类型)

答案 1 :(得分:0)

好的,所以似乎没有强烈的反对意见,或者没有真正的“清洁”方式:)

感谢您输入Cine。