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,都建议将所有接收都置于工作流内的 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()

返回包含 StringIdDisplayNameActivity

(继承自 Activity)
UpdateInstance(NativeActivityUpdateContext)

更新 NativeActivity 的该实例。

(继承自 NativeActivity)

适用于