Freigeben über


Receive Klasse

Definition

Eine Aktivität, die eine Meldung empfängt.

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
Vererbung
Receive
Attribute

Beispiele

Im folgenden Beispiel wird gezeigt, wie eine Receive-Aktivität erstellt und einem Workflow in Code hinzugefügt wird.

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

Im folgenden Beispiel wird gezeigt, wie eine Receive-Aktivität erstellt und einem Workflowdienst in XAML hinzugefügt wird.

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

Hinweise

Die Receive-Aktivität kann abhängig vom Typ des verwendeten Empfangsinhalts ein einzelnes Element oder mehrere Elemente empfangen.

Warnung

Wenn ein Workflow mehrere Receive-Aktivitäten mit demselben Vorgangsnamen enthält, muss die CorrelatesOn-Eigenschaft auf denselben Satz von Korrelationsabfragen festgelegt werden.

Konstruktoren

Receive()

Initialisiert eine neue Instanz der Receive-Klasse.

Eigenschaften

Action

Ruft den Wert des Aktionsheaders der Meldung ab oder legt ihn fest.

CacheId

Ruft den Bezeichner des Caches ab, der innerhalb des Bereichs der Workflowdefinition eindeutig ist.

(Geerbt von Activity)
CanCreateInstance

Ruft einen Wert ab, der angibt, ob eine neue Workflowinstanz zur Verarbeitung der Meldung erstellt wird, wenn die Meldung einer vorhandenen Workflowinstanz nicht entspricht, oder legt ihn fest.

Constraints

Ruft eine Auflistung von Constraint-Aktivitäten ab, die so konfiguriert werden kann, dass sie die Validierung für Activity bereitstellt.

(Geerbt von Activity)
Content

Ruft die zu empfangenen Daten ab oder legt diese fest. Der Inhalt kann entweder ein ReceiveMessageContent oder ein ReceiveParametersContent sein.

CorrelatesOn

Ruft den MessageQuerySet ab, der für die Abfrage der Meldung zur Extraktion der Korrelationsdaten verwendet wird, oder legt diesen fest.

CorrelatesWith

Ruft ein Korrelationshandle ab, mit dem die Meldung an die entsprechende Workflowinstanz weitergeleitet wird, oder legt es fest.

CorrelationInitializers

Ruft eine Auflistung von Korrelationsinitialisierern ab, die abfragebasierte Korrelationen, Kontextkorrelationen, Rückrufkontextkorrelationen oder Anforderung/Antwort-Korrelationen mit ausgeführter Send-Aktivität initialisieren.

DisplayName

Ruft einen optionalen Anzeigenamen ab, der für Debugging, Validierung, Ausnahmebehandlung und Nachverfolgung verwendet wird, oder legt ihn fest.

(Geerbt von Activity)
Id

Ruft einen Bezeichner ab, der innerhalb des Bereichs der Workflowdefinition eindeutig ist.

(Geerbt von Activity)
Implementation

Ruft den Delegaten ab, der eine Activity mit der Ausführungslogik zurückgibt, oder legt diesen fest.

(Geerbt von Activity)
ImplementationVersion

Übernimmt oder bestimmt die Version für die benutzte Implementierung.

(Geerbt von Activity)
KnownTypes

Ruft eine Auflistung bekannter Typen für den Vorgang ab.

OperationName

Ruft den Namen des von Receive implementierten Vorgangs ab oder legt diesen fest.

ProtectionLevel

Ruft einen Wert ab, der die Schutzebene für den Vorgang angibt, oder legt diesen fest.

SerializerOption

Ruft einen Wert ab, der das Serialisierungsprogramm angibt, das für diesen Vorgang verwendet werden soll, oder legt ihn fest.

ServiceContractName

Ruft den Namen des Dienstvertrags ab oder legt diesen fest.

Methoden

CacheMetadata(ActivityMetadata)

Erstellt und überprüft eine Beschreibung der Argumente, Variablen, untergeordneten Aktivitäten und Aktivitätsdelegaten der Aktivität.

(Geerbt von Activity)
Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
FromOperationDescription(OperationDescription)

Gibt die Empfangsaktivität aus der angegebenen Vertragsvorgangsbeschreibung zurück.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

Löst ein Ereignis aus, wenn die dynamische Updatezuordnung erstellt wird.

(Geerbt von Activity)
ShouldSerializeCorrelatesOn()

Gibt einen Wert zurück, der angibt, ob die CorrelatesOn-Eigenschaft ihren Standardwert geändert hat und serialisiert werden soll.

ShouldSerializeDisplayName()

Gibt an, ob die DisplayName- Eigenschaft serialisiert werden soll.

(Geerbt von Activity)
ToString()

Gibt eine String zurück, die Id und DisplayName von Activity enthält.

(Geerbt von Activity)

Gilt für:

Weitere Informationen