This documentation is archived and is not being maintained.

CompensableActivity Class

An activity that supports compensation of its child activities.

Namespace:  System.Activities.Statements
Assembly:  System.Activities (in System.Activities.dll)

public sealed class CompensableActivity : NativeActivity<CompensationToken>

The CompensableActivity type exposes the following members.

Public methodCompensableActivityInitializes a new instance of the CompensableActivity class.

Public propertyBodyGets or sets the activity that is scheduled when the CompensableActivity executes.
Protected propertyCacheIdGets the identifier of the cache that is unique within the scope of the workflow definition. (Inherited from Activity.)
Public propertyCancellationHandlerGets or sets the activity that is scheduled when the activity is canceled.
Protected propertyCanInduceIdleGets or sets a value that indicates whether the activity can cause the workflow to become idle. (Inherited from NativeActivity<TResult>.)
Public propertyCompensationHandlerGets or sets the activity that is scheduled when compensation is performed on the CompensableActivity.
Public propertyConfirmationHandlerGets or sets the activity that is scheduled when confirmation is performed for this CompensableActivity.
Protected propertyConstraintsGets a collection of Constraint activities that can be configured to provide validation for the Activity. (Inherited from Activity.)
Public propertyDisplayNameGets or sets an optional friendly name that is used for debugging, validation, exception handling, and tracking. (Inherited from Activity.)
Public propertyIdGets an identifier that is unique in the scope of the workflow definition. (Inherited from Activity.)
Protected propertyImplementationThe execution logic of the activity. (Inherited from NativeActivity<TResult>.)
Public propertyResultGets or sets the result argument for the Activity<TResult>. (Inherited from Activity<TResult>.)
Public propertyResultTypeWhen implemented in a derived class, gets the type of an activity OutArgument. (Inherited from ActivityWithResult.)
Public propertyVariablesGets the collection of Variable objects for this CompensableActivity.

Protected methodAbortWhen implemented in a derived class, takes actions in response to the activity being aborted. (Inherited from NativeActivity<TResult>.)
Protected methodCacheMetadata(ActivityMetadata)Not implemented. Use CacheMetadata(NativeActivityMetadata) instead. (Inherited from NativeActivity<TResult>.)
Protected methodCacheMetadata(NativeActivityMetadata)Creates and validates a description of the activity’s arguments, variables, child activities, and activity delegates. (Inherited from NativeActivity<TResult>.)
Protected methodCancelWhen implemented in a derived class, runs logic to cause graceful early completion of the activity. (Inherited from NativeActivity<TResult>.)
Public methodEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodExecuteWhen implemented in a derived class, runs the activity’s execution logic. (Inherited from NativeActivity<TResult>.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodShouldSerializeDisplayNameIndicates whether the DisplayName property should be serialized. (Inherited from Activity.)
Public methodToStringReturns a String that contains the Id and DisplayName of the Activity. (Inherited from Activity.)

CompensableActivity allows a developer to specify a Body activity that defines a long-running task that performs their core business logic. It also allows the developer to optionally specify a compensation and confirmation activity to schedule appropriate business logic in the event of errors or successful completion of the Body. Compensation and confirmation of a CompensableActivity is invoked by using the CompensationToken returned by the CompensableActivity. CompensationToken is an opaque, typed object returned as the Result() argument after successful completion of a CompensableActivity activity’s Body. This CompensationToken is used by the Confirm and Compensate activities to explicitly invoke confirmation and compensation of a CompensableActivity. CompensableActivity can be composed in a nested hierarchical fashion in the workflow. For more information, seeCompensation Programming Model.

.NET Framework

Supported in: 4

.NET Framework Client Profile

Supported in: 4

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.