3

有没有办法比抛出一个更优雅的退出工作流InvalidWorkflowException?我正在编写一个活动(与 SQL 数据库交互),如果操作失败,该活动需要短路。

我知道它可以分成多个步骤/活动并将它们链接起来,但是我可以从一个活动中设置我的执行状态吗?

this.currentContext.SetState(Cancelled)什么?

4

3 回答 3

2

老实说,我不确定,因为我对使用 Windows 工作流还比较陌生,但是使用 aNativeActivity并查看NativeActivityContext.CancelChildren呢?

也请查看 MSDN 上的这篇文章:Modeling Cancellation Behavior in Workflow

于 2011-02-03T20:05:24.020 回答
2

我认为这真的取决于你如何布置你的工作流程。如果这不是例外情况,请继续在您的工作流程中处理它。您可以设置一个属性,然后结束该任务。下一个任务可以是决定您是停止所有处理还是继续后续步骤的决策任务。

如果这是一个例外情况,那么你应该抛出一个异常并让所有的补偿逻辑做它的事情。

于 2011-02-03T20:19:12.567 回答
1

我认为这与任何其他程序中的情况相同。如果您的活动中发生错误,您将抛出一些异常,您将使用 try/catch 活动来处理它并优雅地终止 WF。

于 2011-02-03T20:07:27.433 回答