我应该公开Actions而不是事件吗?

时间:2010-10-07 05:49:54

标签: c# lambda

在使用WF 4.0时,我注意到WorkflowApplication类公开了动作属性(Aborted,Complete等等)而不是事件。 有具体原因吗?我应该何时更喜欢动作属性而不是事件?

谢谢

3 个答案:

答案 0 :(得分:6)

哇;我看到what you mean;这让我感到很惊讶。

但是,如果你想不出在这里使用属性的好理由(我不能),那么坚持event s;他们避免了一系列问题(意外取消订阅和不恰当的调用是最大的问题)。

我唯一能想到的是也许他们需要这个用于序列化目的,但我可以想到其他方法来破解那个坚果。或者,也许常规事件在WF的疯狂“依赖属性”/“附加属性”/“路由事件”世界中没有意义。

答案 1 :(得分:3)

修改:以下内容不准确,请参阅下面的Marc's comment

首先,事件允许多个处理程序本身,而Action属性只允许单个处理程序。是的,Action属性本身可以进行广播,但这不是很有凝聚力或惯用力。

我和Marc在一起,我很惊讶他们使用Action属性而不是标准事件。

答案 2 :(得分:1)

我发了一封电子邮件给WF团队的一名成员,他很友好地回答了我。 他告诉我,事件和行动几乎是等价的,但团队对使用API​​的API感觉更好。