CorrelationHandle Class

.NET Framework (current version)

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
	Inherits Handle


Initializes a new instance of the CorrelationHandle class.


Gets the name to be used by this Handle when added to an activity’s execution properties.(Inherited from Handle.)


Gets the ActivityInstance that contains the Variable that contains the Handle.(Inherited from Handle.)


Determines whether the specified object is equal to the current object.(Inherited from Object.)


Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)


Serves as the default hash function. (Inherited from Object.)


Gets the Type of the current instance.(Inherited from Object.)


Creates a shallow copy of the current Object.(Inherited from Object.)


Registers the CorrelationHandle with the workflow runtime.(Overrides Handle.OnInitialize(HandleInitializationContext).)


Unregisters the CorrelationHandle with the workflow runtime.(Overrides Handle.OnUninitialize(HandleInitializationContext).)


Throws an InvalidOperationException if the Handle has not been initialized.(Inherited from Handle.)


Returns a string that represents the current object.(Inherited from Object.)

Windows Workflow Foundation (WF) provides four types of correlation: Content Based Correlation, Request-Reply Correlation, Durable Duplex Correlation, and Context Exchange Correlation. For more information about correlation, see Correlation Overview, the specific correlation types mentioned previously, and the correlation samples located in the Services [WF Samples] node of the WF 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
Available since 4.0

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

Return to top