使用 CompensatableSequenceActivity 活动

CompensatableSequenceActivity 活动是 SequenceActivity 活动的实现 ICompensatableActivity 接口的可补偿版本。CompensatableSequenceActivity 实现 ICompensatableActivity 接口。 通过实现此接口,CompensatableSequenceActivity 可以拥有 CompensationHandlerActivity 作为子项。 如果需要补偿 CompensatableSequenceActivity,就将执行此活动。

只有成功完成实现 ICompensatableActivity 的活动,才会发生相应的补偿。 补偿可以是因为父活动中发生异常而进行的隐式补偿,也可以是通过使用 CompensateActivity 活动而进行的显式补偿。

CompensatableSequenceActivity 适合在下面的情况下使用:存在非事务性工作需要完成,但因某种错误情况可能需要在以后撤消该工作。 例如,如果工作流已经发送电子邮件,但因之后发生的错误而必须发送撤消电子邮件,则可以通过下面的方法完成这一任务:将发送第一封电子邮件的活动布置到 CompensatableSequenceActivity 活动中,而将发送撤消电子邮件的活动布置到相应的 CompensationHandlerActivity 中。 这样,仅当第一个 CompensatableSequenceActivity 成功完成(即发出第一封电子邮件)时,运行时才会运行补偿逻辑。

有关 SequenceActivity 活动的行为的信息,请参见使用 SequenceActivity 活动

有关补偿的信息,请参见使用 CompensateActivity 活动使用 CompensationHandlerActivity 活动

有关演示如何使用补偿的代码示例,请参见Compensation Sample

请参见

参考

SequenceActivity
CompensateActivity
CompensationHandlerActivity
ICompensatableActivity
CompensatableSequenceActivity
CompensatableTransactionScopeActivity

概念

使用 SequenceActivity 活动
在工作流中使用补偿
使用 CompensateActivity 活动
使用 CompensationHandlerActivity 活动
使用 CompensatableTransactionScopeActivity 活动
补偿概述

其他资源

Compensation Sample
Windows Workflow Foundation 活动

Footer image

版权所有 (C) 2007 Microsoft Corporation。保留所有权利。