Receive 类

定义

接收消息的活动。

public ref class Receive sealed : System::Activities::Activity
[System.Windows.Markup.ContentProperty("Content")]
public sealed class Receive : System.Activities.Activity
[<System.Windows.Markup.ContentProperty("Content")>]
type Receive = class
    inherit Activity
Public NotInheritable Class Receive
Inherits Activity
继承
Receive
属性

示例

下面的示例演示如何在代码中创建 Receive 活动并将它添加到工作流。

Variable<string> message = new Variable<string> { Name = "message" };
Variable<string> echo = new Variable<string> { Name = "echo" };
Receive receiveString = new Receive
{
    OperationName = "Echo",
    ServiceContractName = "Echo",
    CanCreateInstance = true,
    //parameters for receive
    Content = new ReceiveParametersContent
    {
        Parameters = 
        {
            {"message", new OutArgument<string>(message)}
        }
    }
};

Sequence workflow = new Sequence()
{
    Variables = { message, echo },
    Activities =
        {
            receiveString,
            new WriteLine
            {
                Text = new InArgument<string>(env =>("Message received: " + message.Get(env)))
            },
            new Assign<string>
            {
                Value = new InArgument<string>(env =>("<echo> " + message.Get(env))),
                To = new OutArgument<string>(echo)
            },                        
            //parameters for reply
            new SendReply
            {                           
                Request = receiveString,                            
                Content = new SendParametersContent
                {
                    Parameters =
                    {
                        { "echo", new InArgument<string>(echo) }
                    },
                }
            },
            new WriteLine
            {
                Text = new InArgument<string>(env =>("Message sent: " + echo.Get(env)))
            },
        },
};

service = new WorkflowService
{
    Name = "Echo",
    Body = workflow
};

下面的示例演示如何用 XAML 创建 Receive 活动并将它添加到工作流服务。

<WorkflowService mc:Ignorable="sap" ConfigurationName="Service1" Name="Service1" mva:VisualBasic.Settings="Assembly references and imported namespaces serialized as XML namespaces" xmlns="http://schemas.microsoft.com/netfx/2009/xaml/servicemodel" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mv="clr-namespace:Microsoft.VisualBasic;assembly=System" xmlns:mva="clr-namespace:Microsoft.VisualBasic.Activities;assembly=System.Activities" xmlns:p="http://schemas.microsoft.com/netfx/2009/xaml/activities" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:s1="clr-namespace:System;assembly=System" xmlns:s2="clr-namespace:System;assembly=System.Xml" xmlns:s3="clr-namespace:System;assembly=System.Core" xmlns:sad="clr-namespace:System.Activities.Debugger;assembly=System.Activities" xmlns:sap="http://schemas.microsoft.com/netfx/2009/xaml/activities/presentation" xmlns:scg="clr-namespace:System.Collections.Generic;assembly=System" xmlns:scg1="clr-namespace:System.Collections.Generic;assembly=System.ServiceModel" xmlns:scg2="clr-namespace:System.Collections.Generic;assembly=System.Core" xmlns:scg3="clr-namespace:System.Collections.Generic;assembly=mscorlib" xmlns:sd="clr-namespace:System.Data;assembly=System.Data" xmlns:sl="clr-namespace:System.Linq;assembly=System.Core" xmlns:ssa="clr-namespace:System.ServiceModel.Activities;assembly=System.ServiceModel.Activities" xmlns:st="clr-namespace:System.Text;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">  
  <p:Sequence sad:XamlDebuggerXmlReader.FileName="c:\Projects\WFServiceSnippets\WFServiceSnippets\Service1.xamlx" sap:VirtualizedContainerService.HintSize="277,644" mva:VisualBasic.Settings="Assembly references and imported namespaces serialized as XML namespaces">  
    <p:Sequence.Variables>  
      <p:Variable x:TypeArguments="CorrelationHandle" Name="__handle1" />  
      <p:Variable x:TypeArguments="x:String" Name="Message" />  
      <p:Variable x:TypeArguments="x:String" Name="Echo" />  
    </p:Sequence.Variables>  
    <sap:WorkflowViewStateService.ViewState>  
      <scg3:Dictionary x:TypeArguments="x:String, x:Object">  
        <x:Boolean x:Key="IsExpanded">True</x:Boolean>  
      </scg3:Dictionary>  
    </sap:WorkflowViewStateService.ViewState>  
    <Receive x:Name="__ReferenceID0" CanCreateInstance="True" DisplayName="ReceiveString" sap:VirtualizedContainerService.HintSize="255,90" OperationName="Echo" ServiceContractName="Echo">  
      <Receive.CorrelationInitializers>  
        <RequestReplyCorrelationInitializer CorrelationHandle="[__handle1]" />  
      </Receive.CorrelationInitializers>  
      <ReceiveParametersContent>  
        <p:OutArgument x:TypeArguments="x:String" x:Key="message">[Message]</p:OutArgument>  
      </ReceiveParametersContent>  
    </Receive>  
    <p:WriteLine sap:VirtualizedContainerService.HintSize="255,61" Text="[&quot;Message received: &quot; + Message]" />  
    <p:Assign sap:VirtualizedContainerService.HintSize="255,58">  
      <p:Assign.To>  
        <p:OutArgument x:TypeArguments="x:String">[Echo]</p:OutArgument>  
      </p:Assign.To>  
      <p:Assign.Value>  
        <p:InArgument x:TypeArguments="x:String">["<echo> " + Message]</p:InArgument>  
      </p:Assign.Value>  
    </p:Assign>  
    <SendReply Request="{x:Reference __ReferenceID0}" DisplayName="SendReply" sap:VirtualizedContainerService.HintSize="255,90">  
      <SendParametersContent>  
        <p:InArgument x:TypeArguments="x:String" x:Key="echo">[Echo]</p:InArgument>  
      </SendParametersContent>  
    </SendReply>  
    <p:WriteLine sap:VirtualizedContainerService.HintSize="255,61" Text="[&quot;Message sent: &quot; + Echo]" />  
  </p:Sequence>  
</WorkflowService>  

注解

Receive 活动可以接收一个或多个项,具体取决于所用接收内容的类型。

警告

当工作流包含多个具有同一操作名称的 Receive 活动时,必须将 CorrelatesOn 属性设置为相关查询的相同集合。

构造函数

Receive()

初始化 Receive 类的新实例。

属性

Action

获取或设置消息的操作标头的值。

CacheId

获取缓存的标识符,该标识符在工作流定义的作用域内是唯一的。

(继承自 Activity)
CanCreateInstance

获取或设置一个值,该值指示消息未关联到现有的工作流实例时是否创建一个新工作流实例来处理该消息。

Constraints

获取可配置的 Constraint 活动的集合,用于为 Activity 提供验证。

(继承自 Activity)
Content

获取或设置要接收的数据。 内容可以是一个 ReceiveMessageContent,也可以是一个 ReceiveParametersContent

CorrelatesOn

获取或设置用于查询消息以提取相关数据的 MessageQuerySet

CorrelatesWith

获取或设置一个相关句柄,用于将消息路由到相应的工作流实例。

CorrelationInitializers

获取相关初始值设定项的集合,该初始值设置项用于初始化基于查询的上下文、回调上下文或与 Send 活动运行时相关的请求-答复。

DisplayName

获取或设置用于调试、验证、异常处理和跟踪的可选友好名称。

(继承自 Activity)
Id

获取一个标识符,该标识符在工作流定义的作用域内是唯一的。

(继承自 Activity)
Implementation

获取或设置返回包含执行逻辑的 Activity 的委托。

(继承自 Activity)
ImplementationVersion

获取或设置用于实现的版本。

(继承自 Activity)
KnownTypes

获取已知操作类型的集合。

OperationName

获取或设置由 Receive 实现的操作的名称。

ProtectionLevel

获取或设置指示操作的保护级别的值。

SerializerOption

获取或设置一个指定此操作要使用的序列化程序的值。

ServiceContractName

获取或设置服务协定的名称。

方法

CacheMetadata(ActivityMetadata)

创建并验证活动的自变量、变量、子活动和活动委托的说明。

(继承自 Activity)
Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
FromOperationDescription(OperationDescription)

从给定协定操作描述中返回接收活动。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

创建动态更新映射时引发事件。

(继承自 Activity)
ShouldSerializeCorrelatesOn()

返回一个值,该值指示 CorrelatesOn 属性是否已更改,不再是默认值且应对其进行序列化。

ShouldSerializeDisplayName()

指示是否应序列化 DisplayName 属性。

(继承自 Activity)
ToString()

返回包含 StringIdDisplayNameActivity

(继承自 Activity)

适用于

另请参阅