Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
WF fornisce il supporto per partecipare alle transazioni System.Transactions utilizzando l'attività TransactionScope per definire l'ambito di un'unità di lavoro soggetta a transazione. System.Transactions.TransactionScope Anche se deve essere completata in modo esplicito, l'attività System.Activities.Statements.TransactionScope chiama in modo implicito la transazione al completamento corretto. Tutte le attività contenute nell'oggetto Body dell'attività TransactionScope partecipano alla transazione. WF può introdurre le transazioni in un flusso di lavoro tramite l'attività TransactedReceiveScope. Analogamente all'attività TransactionScope , qualsiasi attività contenuta nell'oggetto Body partecipa alla transazione. WF garantisce che le attività dipendenti da Transaction.Current funzionino sia con TransactionScope che con TransactedReceiveScope. Se le attività fornite dal sistema non soddisfano tutti i requisiti, le attività personalizzate possono essere compilate usando RuntimeTransactionHandle per abilitare scenari avanzati di flusso e controllo delle transazioni.
Nell'esempio seguente viene costruito un flusso di lavoro costituito da un'attività Sequence che contiene delle attività figlie, inclusa un'attività TransactionScope. Le attività di Body dell'oggetto TransactionScope si eseguono nel contesto della transazione avviata dall'attività TransactionScope.
static Activity ScenarioOne()
{
return new Sequence
{
Activities =
{
new WriteLine { Text = " Begin workflow" },
new TransactionScope
{
Body = new Sequence
{
Activities =
{
new WriteLine { Text = " Begin TransactionScope" },
new PrintTransactionId(),
new TransactionScopeTest(),
new WriteLine { Text = " End TransactionScope" },
},
},
},
new WriteLine { Text = " End workflow" },
}
};
}
Per ulteriori informazioni sull'utilizzo di TransactedReceiveScope, vedere Trasferimento delle transazioni all'interno e all'esterno dei servizi di workflow.