Udostępnij za pośrednictwem


Receive Klasa

Definicja

Działanie, które odbiera komunikat.

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
Dziedziczenie
Receive
Atrybuty

Przykłady

W poniższym przykładzie pokazano, jak utworzyć Receive działanie i dodać je do przepływu pracy w kodzie.

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

W poniższym przykładzie pokazano, jak utworzyć Receive działanie i dodać je do usługi przepływu pracy w języku 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>  

Uwagi

Działanie Receive może odbierać jeden element lub wiele elementów w zależności od typu używanej zawartości odbieranej.

Ostrzeżenie

Jeśli przepływ pracy zawiera wiele Receive działań o tej samej nazwie operacji, CorrelatesOn właściwość musi być ustawiona na ten sam zestaw zapytań korelacji.

Konstruktory

Receive()

Inicjuje nowe wystąpienie klasy Receive.

Właściwości

Action

Pobiera lub ustawia wartość nagłówka akcji komunikatu.

CacheId

Pobiera identyfikator pamięci podręcznej, który jest unikatowy w zakresie definicji przepływu pracy.

(Odziedziczone po Activity)
CanCreateInstance

Pobiera lub ustawia wartość wskazującą, czy nowe wystąpienie przepływu pracy jest tworzone w celu przetworzenia komunikatu, jeśli komunikat nie jest skorelowany z istniejącym wystąpieniem przepływu pracy.

Constraints

Pobiera kolekcję działań, które można skonfigurować w celu Constraint zapewnienia weryfikacji dla Activity .

(Odziedziczone po Activity)
Content

Pobiera lub ustawia dane do odbierania. Zawartość może być elementem ReceiveMessageContent lub .ReceiveParametersContent

CorrelatesOn

Pobiera lub ustawia MessageQuerySet używane do wysyłania zapytań do komunikatu w celu wyodrębnienia danych korelacji.

CorrelatesWith

Pobiera lub ustawia uchwyt korelacji używany do kierowania komunikatu do odpowiedniego wystąpienia przepływu pracy.

CorrelationInitializers

Pobiera kolekcję inicjatorów korelacji, które inicjują zapytania oparte na zapytaniach, kontekst, kontekst wywołania zwrotnego lub korelacje odpowiedzi żądania za pomocą Send przebiegów działań.

DisplayName

Pobiera lub ustawia opcjonalną przyjazną nazwę, która jest używana do debugowania, walidacji, obsługi wyjątków i śledzenia.

(Odziedziczone po Activity)
Id

Pobiera identyfikator, który jest unikatowy w zakresie definicji przepływu pracy.

(Odziedziczone po Activity)
Implementation

Pobiera lub ustawia delegata, który zwraca obiekt Activity zawierający logikę wykonywania.

(Odziedziczone po Activity)
ImplementationVersion

Pobiera lub ustawia wersję używanej implementacji.

(Odziedziczone po Activity)
KnownTypes

Pobiera kolekcję znanych typów operacji.

OperationName

Pobiera lub ustawia nazwę operacji zaimplementowanej przez Receiveelement .

ProtectionLevel

Pobiera lub ustawia wartość wskazującą poziom ochrony dla operacji.

SerializerOption

Pobiera lub ustawia wartość określającą serializator do użycia dla tej operacji.

ServiceContractName

Pobiera lub ustawia nazwę kontraktu usługi.

Metody

CacheMetadata(ActivityMetadata)

Tworzy i weryfikuje opis argumentów, zmiennych, działań podrzędnych i delegatów działań.

(Odziedziczone po Activity)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
FromOperationDescription(OperationDescription)

Zwraca działanie odbierania z podanego opisu operacji kontraktu.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

Zgłasza zdarzenie podczas tworzenia dynamicznej mapy aktualizacji.

(Odziedziczone po Activity)
ShouldSerializeCorrelatesOn()

Zwraca wartość wskazującą, czy CorrelatesOn właściwość zmieniła się z wartości domyślnej i powinna być serializowana.

ShouldSerializeDisplayName()

Wskazuje, czy DisplayName właściwość powinna być serializowana.

(Odziedziczone po Activity)
ToString()

Zwraca wartość String zawierającą Id elementy i DisplayName . Activity

(Odziedziczone po Activity)

Dotyczy

Zobacz też