Partager via


Receive Classe

Définition

Activité qui reçoit un message.

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
Héritage
Receive
Attributs

Exemples

L'exemple suivant indique comment créer une activité Receive et l'ajouter à un workflow dans le 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
};

L'exemple suivant indique comment créer une activité Receive et l'ajouter à un service de workflow en 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>  

Remarques

L'activité Receive peut recevoir un élément unique ou plusieurs éléments selon le type de contenu de réception utilisé.

Avertissement

Lorsqu'un workflow contient plusieurs activités Receive avec le même nom d'opération, la propriété CorrelatesOn doit être définie sur le même ensemble de requêtes de corrélation.

Constructeurs

Receive()

Initialise une nouvelle instance de la classe Receive.

Propriétés

Action

Obtient ou définit la valeur de l'en-tête d'action du message.

CacheId

Obtient l'identificateur du cache qui est unique dans la portée de la définition de flux de travail.

(Hérité de Activity)
CanCreateInstance

Obtient ou définit une valeur qui indique si une nouvelle instance de flux de travail est créée pour traiter le message si le message n'est pas corrélé à une instance de flux de travail existante.

Constraints

Obtient une collection d'activités Constraint qui peuvent être configurées afin de fournir la validation pour l'objet Activity.

(Hérité de Activity)
Content

Obtient ou définit les données à recevoir. Le contenu peut être ReceiveMessageContent ou ReceiveParametersContent.

CorrelatesOn

Obtient ou définit le MessageQuerySet utilisé pour interroger le message afin d'extraire les données de corrélation.

CorrelatesWith

Obtient ou définit un gestionnaire de corrélation utilisé pour router le message à l'instance de flux de travail appropriée.

CorrelationInitializers

Obtient une collection d'initialiseurs de corrélation qui initialisent des corrélations basées sur une requête, de contexte, de contexte de rappel ou de demande-réponse avec une activité Send.

DisplayName

Obtient ou définit un nom convivial utilisé pour le débogage, la validation, la gestion des exceptions et le suivi.

(Hérité de Activity)
Id

Obtient l'identificateur qui est unique dans la portée de la définition de flux de travail.

(Hérité de Activity)
Implementation

Obtient ou définit le délégué qui retourne un objet Activity qui contient la logique d'exécution.

(Hérité de Activity)
ImplementationVersion

Obtient ou définit la version de l'implémentation utilisée.

(Hérité de Activity)
KnownTypes

Obtient une collection de types connus pour l'opération.

OperationName

Obtient ou définit le nom de l'opération implémentée par Receive.

ProtectionLevel

Obtient ou définit une valeur qui indique le niveau de protection pour l'opération.

SerializerOption

Obtient ou définit une valeur qui spécifie le sérialiseur à utiliser pour cette opération.

ServiceContractName

Obtient ou définit le nom du contrat de service.

Méthodes

CacheMetadata(ActivityMetadata)

Crée et valide une description des arguments, variables, activités enfants et délégués de l’activité.

(Hérité de Activity)
Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
FromOperationDescription(OperationDescription)

Retourne l'activité de réception à partir de la description de l'opération de contrat donnée.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

Déclenche un événement lors de la création d'une carte de mise à jour dynamique.

(Hérité de Activity)
ShouldSerializeCorrelatesOn()

Retourne une valeur qui indique si la propriété CorrelatesOn utilise une autre valeur que sa valeur par défaut et doit être sérialisée.

ShouldSerializeDisplayName()

Indique si la propriété DisplayName doit être sérialisée.

(Hérité de Activity)
ToString()

Retourne un objet String qui contient les propriétés Id et DisplayName de l'objet Activity.

(Hérité de Activity)

S’applique à

Voir aussi