Receive 活动设计器

**“Receive”**活动设计器用于创建和配置 Receive 活动。Receive 活动是接收消息的活动,可接收的消息包括内置类型(如 MessageStreamXElement)或者应用程序定义的数据协定、消息协定或可序列化的 XML 类。

Receive 活动

Receive 活动可以接收一个或多个项,具体取决于所用接收内容的类型。SendReply 活动可绑定到作为服务上请求/响应消息交换模式的一部分接收消息的 Receive 活动。

使用 Receive 活动设计器

**“Receive”活动设计器可在“工具箱”“消息传递”类别中找到,“工具箱”可通过单击 工作流设计器 上的“工具箱”选项卡(或者,从“视图”菜单中选择“工具栏”**或按 Ctrl+Alt+X)来访问。

可以将**“Receive”活动设计器从“工具箱”拖放到 工作流设计器 图面上通常放置活动的任何位置。这将创建具有 Receive 的默认 DisplayNameReceive 活动。可以在“Receive”活动设计器的标头中或在属性网格的“DisplayName”**框中编辑 DisplayName

若要创建 SendReply 活动并将其绑定到所选 Receive 活动,请右击**“Receive”活动设计器,然后在上下文菜单中单击“创建 SendReply”项,此时“SendReplyToReceive”设计器将显示在“Receive”设计器下。SendReply 活动是作为服务上请求/响应消息交换模式的一部分发送答复消息的一个活动。它可通过“SendReplyToReceive”**设计器进行配置。

此外,**“工具箱”“消息传递”类别中的“ReceiveAndSendReply”模板设计器可用于创建一对预配置的 ReceiveSendReply 活动。有关如何使用“ReceiveAndSendReply”“SendReplyToReceive”**模板的更多信息,请参见 ReceiveAndSendReply 模板设计器主题。

Receive 活动属性

下表列出 Receive 属性并说明如何在设计器中使用它们。这些属性可以在属性网格中或 工作流设计器 图面上进行编辑。唯一必需的属性是 OperationName 属性。

属性名 必需 用法

DisplayName

False

指定 Receive 活动的友好名称。默认值为 Receive。

虽然对友好 DisplayName 使用非默认值不是绝对必需的,但最好使用非默认值。

OperationName

True

指定由此 Receive 活动实现的服务操作的名称。如果未显式设置 Action 属性,则此属性用于构造 Action 属性的默认值。

ServiceContractName

False

指定服务协定的名称。此属性用于将服务操作分组到各个服务协定中。所有具有相同的 ServiceContractNameReceive 活动都分组到同一服务协定(WSDL 端口类型)中。默认值为顶级(根)活动的完全限定的 CLR 名称。

Content

False

指定要接收的消息或参数内容。它可为 ReceiveMessageContent 活动或 ReceiveParametersContent 活动。编辑此属性的方法是单击属性网格中“内容”字段旁的椭圆形按钮,或单击“Receive”活动设计器图面上“内容”标签旁的“定义…”按钮。这两种方法都将显示“内容定义”对话框。有关如何使用此对话框的更多信息,请参见“内容定义”对话框主题。

CorrelatesOn

False

使用 MessageQuerySet 对象指定工作流的服务操作中各 Receive 活动之间的关联。在属性网格中单击 CorrelatesOn 属性旁的省略号按钮以打开“CorrelatesOn 定义”对话框。有关如何使用此对话框的更多信息,请参见“内容定义”对话框主题。

CorrelatesWith

False

指定用于将消息路由到相应工作流实例的 CorrelationHandle

在属性网格中单击 CorrelatesWith 属性旁的省略号按钮可打开“表达式编辑器”对话框。有关如何使用此对话框的更多信息,请参见如何:使用表达式编辑器主题。

CorrelationInitializers

False

指定在工作流中对配置此 Receive 活动的多个 CorrelationHandle 对象进行初始化的 CorrelationInitializer 对象的集合。在属性网格中单击 CorrelationInitializers 属性旁的省略号按钮可打开“添加相关初始值设定项”对话框。有关如何使用此对话框的更多信息,请参见“添加相关初始值设定项”对话框主题。

CanCreateInstance

False

指定一个值,该值确定如果消息未关联到现有的工作流实例,是否创建一个新工作流实例来处理该消息。如果该值设置为 true,则当消息未关联到现有工作流实例时将创建一个新工作流实例来处理该消息。

KnownTypes

False

指定由此 Receive 活动实现的服务操作的已知类型集合。此属性应与设置为 DataContractSerializerSerializerOption 属性结合使用。如果使用了 XmlSerializer,则忽略此项。

在属性网格中单击“KnownTypes”字段旁的椭圆形按钮可显示“类型集合编辑器”对话框,使用该对话框可添加相关类型。有关如何使用此对话框的更多信息,请参见“类型集合编辑器”对话框主题。

ProtectionLevel

False

指定消息的 ProtectionLevel

  1. None 表示仅进行身份验证。

  2. Sign 表示对数据进行签名以帮助确保所传输数据的完整性。

  3. EncryptAndSign 表示对数据进行加密和签名以帮助确保所传输数据的保密性和完整性。

SerializerOption

False

指定 Receive 活动实现的服务操作所使用的序列化程序的类型。默认值为 DataContractSerializer,它使用提供的数据协定将类型实例序列化和反序列化为 XML 流或文档。如果需要对 XML 进行更多控制,还可使用 XmlSerializer

Action

False

指定消息的操作标头。如果未显式设置,则其默认值为:https://tempuri.org/{服务协定命名空间}/{服务协定名称}/{操作名称}

另请参见

概念

InitializeCorrelation 活动设计器
CorrelationScope 活动设计器
ReceiveAndSendReply 模板设计器
Send 活动设计器
SendAndReceiveReply 模板设计器
TransactedReceiveScope 活动设计器