TransactedReceiveScope 類別

定義

活動,範圍為接收之訊息所啟始的交易存留期。 交易可能會流動至初始訊息上的工作流程,或是在接收到訊息時由發送器所建立。

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
繼承
TransactedReceiveScope
屬性

範例

下列範例將示範如何使用 TransactedReceiveScope 活動中的 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." },
    },
};

備註

TransactedReceiveScope 活動可讓您控制流動異動的存留期。

警告

對於起始 TransactedReceiveScope 活動 (TransactedReceiveScope 包含 Receive 設定為 true) 的活動 CanCreateInstance ,會在執行時間開始執行 TransactedReceiveScope 活動之前建立交易。 此異動不是工作流程活動層的環境異動,而是基礎保存層中的環境異動。 如果執行工作流程時先遇到 Persist 活動再遇到 TransactedReceiveScope 活動,則執行階段會嘗試保存在環境交易之下。 這個行為會導致封鎖,直到交易完成為止。 由於工作流程執行尚未達到 Body 區段,因此,異動無法完成。 此死結會導致工作流程停止回應,直到交易逾時為止。當交易逾時時,新建立的實例就會中止。

重要

每當您使用 TransactedReceiveScope 時,建議您將工作流程中的所有 Receive 放在 TransactedReceiveScope 活動內。

重要

如果使用 TransactedReceiveScope 而且訊息按照錯誤的順序送達,工作流程就會在嘗試傳送第一則順序錯誤的訊息時中止。 當工作流程閒置時,您必須確定工作流程永遠位於一致的停止點。 萬一工作流程已中止,這樣做可讓您從上一個保存點重新啟動工作流程。

建構函式

TransactedReceiveScope()

初始化 TransactedReceiveScope 類別的新執行個體。

屬性

Body

取得或設定 Activity,它會標記 TransactedReceiveScope 活動的主體。

CacheId

取得工作流程定義範圍內的唯一快取識別碼。

(繼承來源 Activity)
CanInduceIdle

取得或設定值,這個值指出此活動是否會造成工作流程變為閒置。

(繼承來源 NativeActivity)
Constraints

取得 Constraint 活動的集合,這些活動可以設定為提供 Activity 的驗證。

(繼承來源 Activity)
DisplayName

取得或設定選擇性的易記名稱,這個名稱會用於偵錯、驗證、例外狀況處理及追蹤。

(繼承來源 Activity)
Id

取得工作流程定義範圍內的唯一識別碼。

(繼承來源 Activity)
Implementation

活動的執行邏輯。

(繼承來源 NativeActivity)
ImplementationVersion

取得或設定活動的實作版本。

(繼承來源 NativeActivity)
Request

取得或設定與這個 Receive 活動相關聯的 TransactedReceiveScope 活動。

Variables

取得與這個 Variable 相關聯之 TransactedReceiveScope 的集合。

方法

Abort(NativeActivityAbortContext)

在衍生類別中實作時,會採取動作以回應中止的活動。

(繼承來源 NativeActivity)
CacheMetadata(ActivityMetadata)

未實作。 請改用 CacheMetadata(NativeActivityMetadata) 方法。

(繼承來源 NativeActivity)
CacheMetadata(NativeActivityMetadata)

建立並驗證活動引數、變數、子活動和活動委派的描述。

(繼承來源 NativeActivity)
Cancel(NativeActivityContext)

在衍生類別中實作時,執行邏輯以便在非失誤性的狀況下及早完成活動。

(繼承來源 NativeActivity)
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
Execute(NativeActivityContext)

在衍生類別中實作時,執行活動的執行邏輯。

(繼承來源 NativeActivity)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity)

建立動態更新的對應時引發事件。

(繼承來源 NativeActivity)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

建立動態更新的對應時引發事件。

(繼承來源 NativeActivity)
ShouldSerializeDisplayName()

指出是否應序列化 DisplayName 屬性。

(繼承來源 Activity)
ToString()

傳回包含 的 和 的 。

(繼承來源 Activity)
UpdateInstance(NativeActivityUpdateContext)

更新 NativeActivity 的執行個體。

(繼承來源 NativeActivity)

適用於