Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A WF fornece suporte para participar em transações de System.Transactions utilizando a atividade TransactionScope para delimitar uma unidade de trabalho transacionada. Embora System.Transactions.TransactionScope deva ser concluído explicitamente, a atividade System.Activities.Statements.TransactionScope implicitamente conclui a transação após uma conclusão bem-sucedida. Todas as atividades contidas na Body da atividade TransactionScope participam na transação. O WF pode gerir transações num fluxo de trabalho através do uso da atividade TransactedReceiveScope. Assim como a TransactionScope atividade, qualquer atividade contida na Body participa da transação. A WF garante que as atividades dependentes de Transaction.Current funcionem com ambos TransactionScope e TransactedReceiveScope. Se as atividades fornecidas pelo sistema não abordarem todos os requisitos, as atividades personalizadas poderão ser criadas usando o RuntimeTransactionHandle para habilitar cenários avançados de fluxo e controle de transações.
No exemplo a seguir, um fluxo de trabalho é construído que consiste numa Sequence atividade que contém atividades subordinadas, incluindo uma TransactionScope atividade. As Body atividades da TransactionScope são executadas sob a transação iniciada pela atividade 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" },
}
};
}
Para mais informações sobre como usar TransactedReceiveScope, consulte Transações em e fora dos Serviços de Fluxo de Trabalho.