CorrelationScope Класс

Определение

Предоставляет неявное управление CorrelationHandle для дочерних действий обмена сообщениями.

public ref class CorrelationScope : System::Activities::NativeActivity
public class CorrelationScope : System.Activities.NativeActivity
type CorrelationScope = class
    inherit NativeActivity
Public Class CorrelationScope
Inherits NativeActivity
Наследование
CorrelationScope

Примеры

В следующем примере показано, как создать CorrelationScope. В этом примере создается Sequence и добавляется CorrelationScope (среди других действий). Объект CorrelationScope содержит объект Sequence, состоящий из действий Send и ReceiveReply.

return new Sequence
{
    Variables = { po, customer },
    Activities =
    {
        new Assign<PurchaseOrder>
        {
            To = po,
            Value = new InArgument<PurchaseOrder>( (e) => new PurchaseOrder() { PartName = "Widget", Quantity = 150 } )
        },
        new Assign<Customer>
        {
            To = customer,
            Value = new InArgument<Customer>( (e) => new Customer() { Id = 12345678, Name = "John Smith" } )
        },
        new WriteLine { Text = new InArgument<string>( (e) => string.Format("Submitting new PurchaseOrder for {0} {1}s", po.Get(e).Quantity, po.Get(e).PartName) ) },
        new CorrelationScope
        {
            Body = new Sequence
            {
                Activities =
                {
                    submitPO,
                    new ReceiveReply
                    {
                        Request = submitPO,
                        Content = ReceiveContent.Create(new OutArgument<int>( (e) => po.Get(e).Id ))
                    }
                }
            }
        },
        new WriteLine { Text = new InArgument<string>( (e) => string.Format("Received ID for new PO: {0}", po.Get(e).Id) ) },
        new Assign<int> { To = new OutArgument<int>( (e) => po.Get(e).Quantity ), Value = 250 },
        new WriteLine { Text = "Updated PO with new quantity: 250.  Resubmitting updated PurchaseOrder based on POId." },
        new Send
        {
            Endpoint = clientEndpoint,
            ServiceContractName = Constants.POContractName,
            OperationName = Constants.UpdatePOName,
            Content = SendContent.Create(new InArgument<PurchaseOrder>(po))
        },
        new Assign<int>
        {
            To = new OutArgument<int>( (e) => po.Get(e).CustomerId ),
            Value = new InArgument<int>( (e) => customer.Get(e).Id )
        },
        new WriteLine { Text = "Updating customer data based on CustomerId." },
        new Send
        {
            Endpoint = clientEndpoint,
            ServiceContractName = Constants.POContractName,
            OperationName = Constants.AddCustomerInfoName,
            Content = SendContent.Create(new InArgument<PurchaseOrder>(po))
        },
        new Send
        {
            Endpoint = clientEndpoint,
            ServiceContractName = Constants.POContractName,
            OperationName = Constants.UpdateCustomerName,
            Content = SendContent.Create(new InArgument<Customer>(customer))
        },
        new WriteLine { Text = "Client completed." }
    }
};

Комментарии

Действие CorrelationScope обеспечивает неявное управление CorrelationHandle, доступное только для дочерних действий. Если свойство CorrelatesWith задано пользователем, оно будет использовано как неявный дескриптор CorrelationScope. При работе с вложенной областью CorrelationScope дочерние элементы внутренней области не могут осуществлять доступ к неявному дескриптору внешней области.

Конструкторы

CorrelationScope()

Инициализирует новый экземпляр класса CorrelationScope.

Свойства

Body

Возвращает или задает логику выполнения действия.

CacheId

Возвращает идентификатор кэша, уникальный в пределах области определения рабочего процесса.

(Унаследовано от Activity)
CanInduceIdle

Возвращает или задает значение, указывающее, может ли действие вызывать простой рабочего процесса.

(Унаследовано от NativeActivity)
Constraints

Возвращает коллекцию действий Constraint, которые можно настроить для выполнения проверки the Activity.

(Унаследовано от Activity)
CorrelatesWith

Возвращает или задает дескриптор CorrelationHandle, используемый дочерними действиями обмена сообщениями.

DisplayName

Возвращает или задает дополнительное понятное имя, используемое для отладки, проверки, обработки исключений и отслеживания.

(Унаследовано от Activity)
Id

Возвращает идентификатор, уникальный в пределах области определения рабочего процесса.

(Унаследовано от Activity)
Implementation

Логика выполнения действия.

(Унаследовано от NativeActivity)
ImplementationVersion

Получает или задает версию реализации действия.

(Унаследовано от NativeActivity)

Методы

Abort(NativeActivityAbortContext)

При реализации в производном классе выполняет действия в ответ на прерывание действия.

(Унаследовано от NativeActivity)
CacheMetadata(ActivityMetadata)

Не реализован. Вместо этого рекомендуется использовать метод CacheMetadata(NativeActivityMetadata).

(Унаследовано от NativeActivity)
CacheMetadata(NativeActivityMetadata)

Создает и проверяет описание аргументов, переменных, дочерних действий и делегатов действия.

Cancel(NativeActivityContext)

При реализации в производном классе выполняет логику, обеспечивающую изящное раннее завершение действия.

(Унаследовано от NativeActivity)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Execute(NativeActivityContext)

Вызывается средой выполнения рабочих процессов для выполнения действия CorrelationScope.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity)

Вызывает событие при создании сопоставления для динамического обновления.

(Унаследовано от NativeActivity)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

Вызывает событие при создании сопоставления для динамического обновления.

(Унаследовано от NativeActivity)
ShouldSerializeCorrelatesWith()

Указывает, необходима ли сериализация свойства CorrelatesWith.

ShouldSerializeDisplayName()

Указывает, необходима ли сериализация свойства DisplayName.

(Унаследовано от Activity)
ToString()

Возвращает значение типа String, которое содержит Id и DisplayName для Activity.

(Унаследовано от Activity)
UpdateInstance(NativeActivityUpdateContext)

Обновляет экземпляр NativeActivity.

(Унаследовано от NativeActivity)

Применяется к