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
};

В следующем примере показано, как создать Receive действие и добавить его в службу рабочего процесса в XAML.

<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

Возвращает или задает данные для получения. Содержимое может быть либо a ReceiveMessageContentReceiveParametersContent, либо .

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()

Возвращает объект String , содержащий Id и DisplayName из нее Activity.

(Унаследовано от Activity)

Применяется к

См. также раздел