Condividi tramite


CorrelationScope Classe

Definizione

Fornisce gestione implicita CorrelationHandle per le attività della messaggistica figlio.

public ref class CorrelationScope : System::Activities::NativeActivity
public class CorrelationScope : System.Activities.NativeActivity
type CorrelationScope = class
    inherit NativeActivity
Public Class CorrelationScope
Inherits NativeActivity
Ereditarietà
CorrelationScope

Esempio

Nell'esempio riportato di seguito viene illustrato come creare un oggetto CorrelationScope. In questo esempio viene creato un oggetto Sequence e viene aggiunto un oggetto CorrelationScope ( tra le altre attività). L'oggetto CorrelationScope contiene un oggetto Sequence composto dalle attività Send e 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." }
    }
};

Commenti

L'attività CorrelationScope gestisce un CorrelationHandle implicito che è visibile solo alle attività figlio. Quando la proprietà CorrelatesWith viene impostata dall'utente, si utilizzerà come l'handle CorrelationScope implicito. Nel caso di CorrelationScope annidato, figli dell'ambito interno non possono accedere ad un handle implicito dell'ambito esterno.

Costruttori

CorrelationScope()

Inizializza una nuova istanza della classe CorrelationScope.

Proprietà

Body

Ottiene o imposta la logica di esecuzione dell'attività.

CacheId

Ottiene l'identificatore della cache che è univoco all'interno dell'ambito della definizione del flusso di lavoro.

(Ereditato da Activity)
CanInduceIdle

Ottiene o imposta un valore che indica se l'attività può determinare che il flusso di lavoro diventi inattivo.

(Ereditato da NativeActivity)
Constraints

Ottiene una raccolta di attività Constraint che possono essere configurate per fornire la convalida per Activity.

(Ereditato da Activity)
CorrelatesWith

Ottiene o imposta l'oggetto CorrelationHandle utilizzato dalle attività della messaggistica figlio.

DisplayName

Ottiene o imposta un nome descrittivo facoltativo utilizzato per debug, convalida, gestione delle eccezioni e rilevamento.

(Ereditato da Activity)
Id

Ottiene un identificatore che è univoco nell'ambito della definizione del flusso di lavoro.

(Ereditato da Activity)
Implementation

Logica di esecuzione dell'attività.

(Ereditato da NativeActivity)
ImplementationVersion

Ottiene o imposta la versione di implementazione dell'attività.

(Ereditato da NativeActivity)

Metodi

Abort(NativeActivityAbortContext)

Quando è implementato in una classe derivata, intraprende azioni in risposta all'attività interrotta.

(Ereditato da NativeActivity)
CacheMetadata(ActivityMetadata)

Non implementato. Al suo posto usa il metodo CacheMetadata(NativeActivityMetadata).

(Ereditato da NativeActivity)
CacheMetadata(NativeActivityMetadata)

Compila e convalida una descrizione degli argomenti dell'attività, delle variabili, delle attività figlio e dei delegati di attività.

Cancel(NativeActivityContext)

In caso di implementazione in una classe derivata, è in esecuzione logico provocare primo completamento aggraziato dell'attività.

(Ereditato da NativeActivity)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
Execute(NativeActivityContext)

Richiesto dal runtime del flusso di lavoro per eseguire l'attività CorrelationScope.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity)

Genera un evento quando si crea un mapping per l'aggiornamento dinamico.

(Ereditato da NativeActivity)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

Genera un evento quando si crea un mapping per l'aggiornamento dinamico.

(Ereditato da NativeActivity)
ShouldSerializeCorrelatesWith()

Indica se la proprietà CorrelatesWith deve essere serializzata.

ShouldSerializeDisplayName()

Indica se la proprietà DisplayName deve essere serializzata.

(Ereditato da Activity)
ToString()

Restituisce un String che contiene il Id e il DisplayName del Activity.

(Ereditato da Activity)
UpdateInstance(NativeActivityUpdateContext)

Aggiorna l'istanza di NativeActivity.

(Ereditato da NativeActivity)

Si applica a