Receive Klas

Definitie

Een activiteit die een bericht ontvangt.

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
Overname
Receive
Kenmerken

Voorbeelden

In het volgende voorbeeld ziet u hoe u een Receive activiteit maakt en deze toevoegt aan een werkstroom in code.

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

In het volgende voorbeeld ziet u hoe u een Receive activiteit maakt en deze toevoegt aan een werkstroomservice in 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>

Opmerkingen

De Receive activiteit kan één item of meerdere items ontvangen, afhankelijk van het type ontvangstinhoud dat wordt gebruikt.

Waarschuwing

Wanneer een werkstroom meerdere Receive activiteiten met dezelfde bewerkingsnaam bevat, moet de CorrelatesOn eigenschap worden ingesteld op dezelfde set correlatiequery's.

Constructors

Name Description
Receive()

Initialiseert een nieuw exemplaar van de Receive klasse.

Eigenschappen

Name Description
Action

Hiermee wordt de waarde van de actieheader van het bericht opgehaald of ingesteld.

CacheId

Hiermee haalt u de id op van de cache die uniek is binnen het bereik van de werkstroomdefinitie.

(Overgenomen van Activity)
CanCreateInstance

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of er een nieuw werkstroomexemplaren worden gemaakt om het bericht te verwerken als het bericht niet overeenkomt met een bestaand werkstroomexemplaren.

Constraints

Hiermee haalt u een verzameling Constraint activiteiten op die kunnen worden geconfigureerd voor validatie voor de Activity.

(Overgenomen van Activity)
Content

Hiermee worden de gegevens opgehaald of ingesteld die moeten worden ontvangen. De inhoud kan een ReceiveMessageContent of een ReceiveParametersContent.

CorrelatesOn

Hiermee haalt u de MessageQuerySet gegevens op die worden gebruikt om een query uit te voeren op het bericht om correlatiegegevens te extraheren.

CorrelatesWith

Hiermee haalt u een correlatie-handle op die wordt gebruikt om het bericht naar het juiste werkstroomexemplaren te routeren.

CorrelationInitializers

Hiermee haalt u een verzameling correlatie-initialisaties op die querygebaseerde, context, callbackcontext of correlaties tussen aanvragen en antwoorden initialiseren met een uitvoering van een Send activiteit.

DisplayName

Hiermee haalt u een optionele beschrijvende naam op die wordt gebruikt voor foutopsporing, validatie, afhandeling van uitzonderingen en tracering.

(Overgenomen van Activity)
Id

Hiermee haalt u een id op die uniek is in het bereik van de werkstroomdefinitie.

(Overgenomen van Activity)
Implementation

Hiermee haalt u de gemachtigde op die een Activity gemachtigde retourneert die de uitvoeringslogica bevat.

(Overgenomen van Activity)
ImplementationVersion

Hiermee haalt u de versie van de gebruikte implementatie op of stelt u deze in.

(Overgenomen van Activity)
KnownTypes

Hiermee haalt u een verzameling bekende typen voor de bewerking op.

OperationName

Hiermee haalt u de naam op van de bewerking die is geïmplementeerd door de Receive.

ProtectionLevel

Hiermee wordt een waarde opgehaald of ingesteld die het beveiligingsniveau voor de bewerking aangeeft.

SerializerOption

Hiermee wordt een waarde opgehaald of ingesteld waarmee de serialisatiefunctie wordt opgegeven die voor deze bewerking moet worden gebruikt.

ServiceContractName

Hiermee haalt u de naam van het servicecontract op of stelt u deze in.

Methoden

Name Description
CacheMetadata(ActivityMetadata)

Hiermee maakt en valideert u een beschrijving van de argumenten, variabelen, onderliggende activiteiten en activiteit gedelegeerden van de activiteit.

(Overgenomen van Activity)
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
FromOperationDescription(OperationDescription)

Retourneert de ontvangstactiviteit van de opgegeven beschrijving van de contractbewerking.

GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

Hiermee wordt een gebeurtenis gegenereerd bij het maken van een dynamische updatetoewijzing.

(Overgenomen van Activity)
ShouldSerializeCorrelatesOn()

Retourneert een waarde die aangeeft of de eigenschap is gewijzigd van de CorrelatesOn standaardwaarde en moet worden geserialiseerd.

ShouldSerializeDisplayName()

Geeft aan of de DisplayName eigenschap moet worden geserialiseerd.

(Overgenomen van Activity)
ToString()

Retourneert een String met de Id en DisplayName van de Activity.

(Overgenomen van Activity)

Van toepassing op

Zie ook