This documentation is archived and is not being maintained.

CorrelationHandle Class

Associates activities together in a correlation by representing a particular shared InstanceKey or transient context in the workflow.


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

public class CorrelationHandle : Handle

The CorrelationHandle type exposes the following members.

Public methodCorrelationHandleInitializes a new instance of the CorrelationHandle class.

Public propertyExecutionPropertyNameGets the name to be used by this Handle when added to an activity’s execution properties. (Inherited from Handle.)
Public propertyOwnerGets the ActivityInstance that contains the Variable that contains the Handle. (Inherited from Handle.)

Public methodEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
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.)
Protected methodOnInitializeRegisters the CorrelationHandle with the workflow runtime. (Overrides Handle.OnInitialize(HandleInitializationContext).)
Protected methodOnUninitializeUnregisters the CorrelationHandle with the workflow runtime. (Overrides Handle.OnUninitialize(HandleInitializationContext).)
Protected methodThrowIfUninitializedThrows an InvalidOperationException if the Handle has not been initialized. (Inherited from Handle.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)

provides four types of correlation: Content Based, Request-Reply, Durable Duplex, and Context Exchange. For more information about correlation, see Correlation Overview, the specific correlation types mentioned previously, and the correlation samples located in the Services node of the samples.

The runtime uses the CorrelationHandle for correlation if it is present, otherwise the CorrelatesWith property of the messaging activity will be used. If both are absent, the ambient handle provided by CorrelationScope or the workflow service is used.

The following example shows how to set the CorrelationHandle on a SendReply activity.

new SendReply
    DisplayName = "Send Adjusted Cost",
    Request = prescriptionRequest,
    // Initialize the orderHandle using the MessageQuerySet to correlate with the final GetAdjustedCost request
    CorrelationInitializers = 
        new QueryCorrelationInitializer
            CorrelationHandle = orderHandle,
            MessageQuerySet = GetOrderQuerySet
    Content = SendContent.Create(new InArgument<Order>((e) => order.Get(e)))

.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.