Condividi tramite


Receive Classe

Definizione

Attività che riceve un messaggio.

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
Ereditarietà
Receive
Attributi

Esempio

Nell'esempio seguente viene illustrato come creare un'attività Receive e aggiungerla a un flusso di lavoro nel codice.

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'esempio seguente illustra come creare un'attività Receive e aggiungerla a un servizio flusso di lavoro 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>

Commenti

L'attività Receive può ricevere un singolo elemento o più elementi a seconda del tipo di contenuto di ricezione usato.

Avviso

Quando un flusso di lavoro contiene più Receive attività con lo stesso nome di operazione, la CorrelatesOn proprietà deve essere impostata sullo stesso set di query di correlazione.

Costruttori

Nome Descrizione
Receive()

Inizializza una nuova istanza della classe Receive.

Proprietà

Nome Descrizione
Action

Ottiene o imposta il valore dell'intestazione dell'azione del messaggio.

CacheId

Ottiene l'identificatore della cache univoca nell'ambito della definizione del flusso di lavoro.

(Ereditato da Activity)
CanCreateInstance

Ottiene o imposta un valore che indica se viene creata una nuova istanza del flusso di lavoro per elaborare il messaggio se il messaggio non è correlato a un'istanza del flusso di lavoro esistente.

Constraints

Ottiene una raccolta di Constraint attività che possono essere configurate per fornire la convalida per .Activity

(Ereditato da Activity)
Content

Ottiene o imposta i dati da ricevere. Il contenuto può essere o .ReceiveMessageContentReceiveParametersContent

CorrelatesOn

Ottiene o imposta l'oggetto MessageQuerySet utilizzato per eseguire una query sul messaggio per estrarre i dati di correlazione.

CorrelatesWith

Ottiene o imposta un handle di correlazione utilizzato per instradare il messaggio all'istanza del flusso di lavoro appropriata.

CorrelationInitializers

Ottiene una raccolta di inizializzatori di correlazione che inizializzano correlazioni basate su query, contesto, contesto di callback o request-reply con un'attività Send eseguita.

DisplayName

Ottiene o imposta un nome descrittivo facoltativo utilizzato per il debug, la convalida, la gestione delle eccezioni e il rilevamento.

(Ereditato da Activity)
Id

Ottiene un identificatore univoco nell'ambito della definizione del flusso di lavoro.

(Ereditato da Activity)
Implementation

Ottiene o imposta il delegato che restituisce un oggetto Activity contenente la logica di esecuzione.

(Ereditato da Activity)
ImplementationVersion

Ottiene o imposta la versione dell'implementazione utilizzata.

(Ereditato da Activity)
KnownTypes

Ottiene una raccolta di tipi noti per l'operazione.

OperationName

Ottiene o imposta il nome dell'operazione implementata dall'oggetto Receive.

ProtectionLevel

Ottiene o imposta un valore che indica il livello di protezione per l'operazione.

SerializerOption

Ottiene o imposta un valore che specifica il serializzatore da utilizzare per questa operazione.

ServiceContractName

Ottiene o imposta il nome del contratto di servizio.

Metodi

Nome Descrizione
CacheMetadata(ActivityMetadata)

Crea e convalida una descrizione degli argomenti, delle variabili, delle attività figlio e dei delegati di attività dell'attività.

(Ereditato da Activity)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
FromOperationDescription(OperationDescription)

Restituisce l'attività di ricezione dalla descrizione dell'operazione di contratto specificata.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

Genera un evento durante la creazione di una mappa di aggiornamento dinamico.

(Ereditato da Activity)
ShouldSerializeCorrelatesOn()

Restituisce un valore che indica se la CorrelatesOn proprietà è stata modificata rispetto al valore predefinito e deve essere serializzata.

ShouldSerializeDisplayName()

Indica se la DisplayName proprietà deve essere serializzata.

(Ereditato da Activity)
ToString()

Restituisce un String oggetto contenente l'oggetto Id e DisplayName dell'oggetto Activity.

(Ereditato da Activity)

Si applica a

Vedi anche