Arbetsflödestransaktioner

WF ger stöd för att delta i System.Transactions transaktioner genom att använda aktiviteten TransactionScope för att hantera en transaktionsenhet. System.Transactions.TransactionScope Även om aktiviteten måste slutföras explicit anropar System.Activities.Statements.TransactionScope den implicit slutförda transaktionen när den har slutförts. Alla aktiviteter som ingår i BodyTransactionScope aktiviteten deltar i transaktionen. WF kan låta transaktioner flöda in i ett arbetsflöde genom användning av TransactedReceiveScope-aktiviteten. Precis som aktiviteten TransactionScope deltar i transaktionen, deltar alla aktiviteter som ingår i Body i transaktionen. WF säkerställer att aktiviteter beroende på Transaction.Current fungerar med både TransactionScope och TransactedReceiveScope. Om de systembaserade aktiviteterna inte uppfyller alla krav kan anpassade aktiviteter skapas med hjälp av RuntimeTransactionHandle scenarier för avancerat flöde och transaktionskontroll.

I följande exempel skapas ett arbetsflöde som består av en Sequence-aktivitet som innehåller underordnade aktiviteter, bland annat en TransactionScope-aktivitet. Aktiviteterna Body som utförs av TransactionScope sker under den transaktion som initierats av aktiviteten 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" },
        }
    };
}

Mer information om hur du använder TransactedReceiveScope finns i Flowing Transactions into and out of Workflow Services (Flöda transaktioner till och från Arbetsflödestjänster).

Se även