TransactedReceiveScope Classe

Definizione

Un'attività che definisce l'ambito della durata di una transazione iniziata da un messaggio ricevuto. È possibile che la transazione sia propagata nel flusso di lavoro al messaggio di avvio o venga creata dal dispatcher alla ricezione del messaggio.

public ref class TransactedReceiveScope sealed : System::Activities::NativeActivity
[System.Windows.Markup.ContentProperty("Body")]
public sealed class TransactedReceiveScope : System.Activities.NativeActivity
[<System.Windows.Markup.ContentProperty("Body")>]
type TransactedReceiveScope = class
    inherit NativeActivity
Public NotInheritable Class TransactedReceiveScope
Inherits NativeActivity
Ereditarietà
TransactedReceiveScope
Attributi

Esempio

Nell'esempio seguente viene illustrato come utilizzare la classe TransactedReceiveScope in un'attività Sequence.

return new Sequence
{
    Activities = 
    {
        new WriteLine { Text = "Service workflow begins." },

        new System.ServiceModel.Activities.TransactedReceiveScope
        {
            Variables = { requestMessage, replyMessage },
            Request = receive,
            Body = new Sequence
            {
                Activities =
                {
                    new WriteLine { Text = new InArgument<string>("Server side: Receive complete.") },
                    
                    new WriteLine { Text = new InArgument<string>(new VisualBasicValue<string>() { ExpressionText = "\"Server side: Received = '\" + requestString.toString() + \"'\"" }) },

                    new PrintTransactionInfo(),

                    new Assign<string>
                    {
                        Value = new InArgument<string>("Server side: Sending reply."),
                        To = new OutArgument<string>(replyMessage)
                    },

                    new WriteLine { Text = new InArgument<string>("Server side: Begin reply.") },

                    new SendReply
                    {
                        Request = receive,
                        Content = SendContent.Create(new InArgument<string>(replyMessage)),                                    
                    },

                    new WriteLine { Text = new InArgument<string>("Server side: Reply sent.") },
                },
            },
        },

        new WriteLine { Text = "Server workflow ends." },
    },
};

Commenti

L'attività TransactedReceiveScope consente di controllare la durata della transazione propagata.

Avviso

Per un'attività di avvio TransactedReceiveScope (che TransactedReceiveScope contiene un'attività Receive con CanCreateInstance impostato su true), la transazione viene creata prima che il runtime inizi a eseguire l'attività TransactedReceiveScope . Questa transazione non si trova a livello delle attività del flusso di lavoro, ma si trova ai livelli di persistenza sottostante. Se l'esecuzione del flusso di lavoro incontra un'attività Persist prima dell'attività TransactedReceiveScope, il runtime cerca di rendere persistente nella transazione di ambiente. Questo comportamento causa un blocco finché la transazione non viene completata. Poiché l'esecuzione del flusso di lavoro non ha raggiunto la sezione Body, la transazione non può terminare. Questo deadlock causa l'arresto del flusso di lavoro fino al timeout della transazione. Quando si verifica il timeout della transazione, l'istanza appena creata viene interrotta.

Importante

Ogni volta che si utilizza un oggetto TransactedReceiveScope, è consigliabile posizionare tutte le attività Receive del flusso di lavoro all'interno delle attività TransactedReceiveScope.

Importante

Quando si utilizza l'oggetto TransactedReceiveScope e i messaggi arrivano nell'ordine non corretto, il flusso di lavoro verrà interrotto quando si tenterà di consegnare il primo messaggio nell'ordine non corretto. È necessario assicurarsi che il flusso di lavoro sia sempre in corrispondenza di un punto di interruzione coerente quando il flusso di lavoro è inattivo. In questo modo sarà possibile riavviare il flusso di lavoro da un punto di persistenza precedente nel caso in cui il flusso di lavoro venga interrotto.

Costruttori

TransactedReceiveScope()

Inizializza una nuova istanza della classe TransactedReceiveScope.

Proprietà

Body

Ottiene o imposta Activity che costituisce il corpo dell'attività TransactedReceiveScope.

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)
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)
Request

Ottiene o imposta l’attività Receive associata a questa attività TransactedReceiveScope.

Variables

Ottiene la raccolta di oggetti Variable associati a questo oggetto TransactedReceiveScope.

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)

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

(Ereditato da NativeActivity)
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)

Quando è implementato in una classe derivata, esegue la logica di esecuzione dell'attività.

(Ereditato da NativeActivity)
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)
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