共用方式為


工作流程異動

WF 使用 TransactionScope 活動來限定工作異動單元的範圍,以支援參與 System.Transactions 異動。 System.Transactions.TransactionScope 必須明確地完成,而 System.Activities.Statements.TransactionScope 活動則會在順利完成時隱含地呼叫交易。 Body 活動的 TransactionScope 中包含的任何活動都會參與異動。 WF 可以透過使用 TransactedReceiveScope 活動,將交易流動至工作流程。 如同 TransactionScope 活動,Body 中所含的所有活動都會參與交易。 WF 會確定相依於 Transaction.Current 的活動都能與 TransactionScopeTransactedReceiveScope 共同運作。 如果系統提供的活動無法符合所有需求,可以使用 RuntimeTransactionHandle 建置自訂活動,以啟用進階流程及異動控制案例。

在下列範例中,所建構工作流程是由包含子活動 (包括 TransactionScope 活動) 的 Sequence 活動組成。 BodyTransactionScope 活動會在 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" },
        }
    };
}

如需使用 TransactedReceiveScope 的詳細資訊,請參閱進出工作流程服務的異動流動

另請參閱