Performing manual compensation by using Compensate activity
In a certain workflow execution phase, we may want to compensate an activity manually (rather than driven by an exception/error)—a Compensate
activity will handle this job.
How to do it...
Create a Workflow Console Application project:
Create a new Workflow Console Application and name it
UseCompensateActivity
.Create workflow code:
Add a new class file to the project and name it
CompensationWorkflow.cs
. Fill the file with the following code:using System; using System.Activities; using System.Activities.Statements; namespace UseCompensateActivity { class CompensationWorkflow { public Activity GetInstance() { Variable<CompensationToken> token=new Variable<CompensationToken>(); Activity workflow = new Sequence() { Variables={token}, Activities = { new CompensableActivity{ Body=new WriteLine{Text="Compensableactivity...