Receive クラス

定義

メッセージを受信するアクティビティ。

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
継承
Receive
属性

次の例では、コードで Receive アクティビティを作成してワークフローに追加する方法を示します。

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

次の例では、XAML で Receive アクティビティを作成してワークフロー サービスに追加する方法を示します。

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

注釈

Receive アクティビティでは、使用されている受信コンテンツの型に応じて、単一または複数のアイテムを受信できます。

警告

複数の Receive アクティビティが同じ操作名でワークフローに含まれている場合は、同じ関連付けクエリのセットに CorrelatesOn プロパティを設定する必要があります。

コンストラクター

Receive()

Receive クラスの新しいインスタンスを初期化します。

プロパティ

Action

メッセージのアクション ヘッダーの値を取得または設定します。

CacheId

ワークフロー定義のスコープ内で一意であるキャッシュの識別子を取得します。

(継承元 Activity)
CanCreateInstance

メッセージが既存のワークフロー インスタンスと関連付けられていない場合に、新しいワークフロー インスタンスを作成してメッセージを処理するかどうかを示す値を取得または設定します。

Constraints

Constraint に検証を提供するよう構成できる Activity アクティビティのコレクションを取得します。

(継承元 Activity)
Content

受信するデータを取得または設定します。 内容は ReceiveMessageContent または ReceiveParametersContent のどちらかです。

CorrelatesOn

メッセージにクエリを実行して関連付けデータを抽出するために使用する MessageQuerySet を取得または設定します。

CorrelatesWith

メッセージを適切なワークフロー インスタンスにルーティングするために使用される関連付けハンドルを取得または設定します。

CorrelationInitializers

アクティビティの実行との関連付け (クエリベース、コンテキスト、コールバック コンテキスト、または要求/応答の関連付け) を初期化する関連付け初期化子のコレクションを取得します。

DisplayName

デバッグ、検証、例外処理、および追跡に使用する省略可能な表示名を取得または設定します。

(継承元 Activity)
Id

ワークフロー定義のスコープ内で一意である識別子を取得します。

(継承元 Activity)
Implementation

実行ロジックを含む Activity を返すデリゲートを取得または設定します。

(継承元 Activity)
ImplementationVersion

使用される実装のバージョンを取得または設定します。

(継承元 Activity)
KnownTypes

操作の既知の型のコレクションを取得します。

OperationName

Receive によって実装される操作の名前を取得または設定します。

ProtectionLevel

操作の保護レベルを示す値を取得または設定します。

SerializerOption

この操作に使用するシリアライザーを指定する値を取得または設定します。

ServiceContractName

サービス コントラクトの名前を取得または設定します。

メソッド

CacheMetadata(ActivityMetadata)

アクティビティの引数、変数、子アクティビティ、およびアクティビティ デリゲートの記述を作成および検証します。

(継承元 Activity)
Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
FromOperationDescription(OperationDescription)

特定のコントラクト操作の説明から receive アクティビティを返します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

動的な更新のマップを作成するとイベントが発生します。

(継承元 Activity)
ShouldSerializeCorrelatesOn()

CorrelatesOn プロパティが既定値から変更されたためにシリアル化する必要があるかどうかを示す値を返します。

ShouldSerializeDisplayName()

DisplayName プロパティをシリアル化する必要があるかどうかを示します。

(継承元 Activity)
ToString()

StringId および DisplayName を含む Activity を返します。

(継承元 Activity)

適用対象

こちらもご覧ください