Sdílet prostřednictvím


Receive Třída

Definice

Aktivita, která obdrží zprávu.

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
Dědičnost
Receive
Atributy

Příklady

Následující příklad ukazuje, jak vytvořit Receive aktivitu a přidat ji do pracovního postupu v kódu.

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

Následující příklad ukazuje, jak vytvořit Receive aktivitu a přidat ji do služby pracovního postupu v 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>  

Poznámky

Aktivita Receive může přijmout jednu položku nebo více položek v závislosti na typu použitého příjmu obsahu.

Upozornění

Pokud pracovní postup obsahuje více Receive aktivit se stejným názvem operace, CorrelatesOn musí být vlastnost nastavena na stejnou sadu korelačních dotazů.

Konstruktory

Receive()

Inicializuje novou instanci Receive třídy .

Vlastnosti

Action

Získá nebo nastaví hodnotu záhlaví akce zprávy.

CacheId

Získá identifikátor mezipaměti, který je jedinečný v rámci oboru definice pracovního postupu.

(Zděděno od Activity)
CanCreateInstance

Získá nebo nastaví hodnotu, která označuje, zda je vytvořena nová instance pracovního postupu zpracování zprávy, pokud zpráva není v korelaci s existující instancí pracovního postupu.

Constraints

Získá kolekci Constraint aktivit, které lze nakonfigurovat tak, aby poskytovaly ověřování pro Activity.

(Zděděno od Activity)
Content

Získá nebo nastaví data pro příjem. Obsah může být buď a, ReceiveMessageContent nebo ReceiveParametersContent.

CorrelatesOn

Získá nebo nastaví MessageQuerySet k dotazování zprávy k extrakci korelačních dat.

CorrelatesWith

Získá nebo nastaví popisovač korelace, který se používá ke směrování zprávy do příslušné instance pracovního postupu.

CorrelationInitializers

Získá kolekci inicializátorů korelace, které inicializují korelace založené na dotazu, kontextu, kontextu zpětného volání nebo požadavek-odpověď se spuštěním Send aktivity.

DisplayName

Získá nebo nastaví volitelný popisný název, který se používá pro ladění, ověřování, zpracování výjimek a sledování.

(Zděděno od Activity)
Id

Získá identifikátor, který je jedinečný v oboru definice pracovního postupu.

(Zděděno od Activity)
Implementation

Získá nebo nastaví delegáta, který vrací , Activity který obsahuje logiku provádění.

(Zděděno od Activity)
ImplementationVersion

Získá nebo nastaví verzi použité implementace.

(Zděděno od Activity)
KnownTypes

Získá kolekci známých typů pro operaci.

OperationName

Získá nebo nastaví název operace implementované objektem Receive.

ProtectionLevel

Získá nebo nastaví hodnotu, která označuje úroveň ochrany pro operaci.

SerializerOption

Získá nebo nastaví hodnotu, která určuje serializátor použít pro tuto operaci.

ServiceContractName

Získá nebo nastaví název kontraktu služby.

Metody

CacheMetadata(ActivityMetadata)

Vytvoří a ověří popis argumentů aktivity, proměnných, podřízených aktivit a delegátů aktivit.

(Zděděno od Activity)
Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
FromOperationDescription(OperationDescription)

Vrátí aktivitu příjmu z popisu operace daného kontraktu.

GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

Vyvolá událost při vytváření dynamické mapy aktualizace.

(Zděděno od Activity)
ShouldSerializeCorrelatesOn()

Vrátí hodnotu, která označuje, zda CorrelatesOn se vlastnost změnila z výchozí hodnoty a měla by být serializována.

ShouldSerializeDisplayName()

Určuje, zda DisplayName má být vlastnost serializována.

(Zděděno od Activity)
ToString()

Vrátí hodnotu , String která obsahuje Id a DisplayName objektu Activity.

(Zděděno od Activity)

Platí pro

Viz také