OutArgument<T> クラス

定義

アクティビティから出るデータ フローを表すバインディング ターミナル。

generic <typename T>
public ref class OutArgument sealed : System::Activities::OutArgument
[System.ComponentModel.TypeConverter(typeof(System.Activities.XamlIntegration.OutArgumentConverter))]
[System.Windows.Markup.ContentProperty("Expression")]
public sealed class OutArgument<T> : System.Activities.OutArgument
[<System.ComponentModel.TypeConverter(typeof(System.Activities.XamlIntegration.OutArgumentConverter))>]
[<System.Windows.Markup.ContentProperty("Expression")>]
type OutArgument<'T> = class
    inherit OutArgument
Public NotInheritable Class OutArgument(Of T)
Inherits OutArgument

型パラメーター

T

OutArgument<T> のデータ型。

継承
OutArgument<T>
属性

OutArgument<T> を作成するコード サンプルを次に示します。 この例は、Formatter サンプルから抜粋したものです。

Sequence workflow = new Sequence
{
    Variables = { mealExpense, result },
    Activities =
        {
            new Assign<Expense>
            {
               Value = new InArgument<Expense>( (e) => new Meal { Amount = 50, Location = "Redmond", Vendor = "KFC" }),
               To = new OutArgument<Expense>(mealExpense)
            },
            new WriteLine
            {
                Text = new InArgument<string>("Hello")
            },
            approveExpense,
            new ReceiveReply
            {
                Request = approveExpense,
                Content = ReceiveContent.Create(new OutArgument<bool>(result))
            },

            new If
            {
               Condition = new InArgument<bool> (result),
               Then =
                    new WriteLine
                    {
                        Text = new InArgument<string>("Expense Approved")
                    },
               Else =
                    new WriteLine
                    {
                        Text = new InArgument<string>("Expense Cannot be Approved")
                    },
            },
        }
};

注釈

アクティビティからデータを流すために、OutArgument<T> が使用されます。 アクティビティが、ワークフローのルート アクティビティである場合、ワークフローからワークフロー ホストにデータを流すためにも使用されます。 この例では、2 つの入力引数と 1 つの出力引数を持つカスタム Divide アクティビティが、ワークフローのルート アクティビティとして使用されます。 ホスト アプリケーションは、2 つの値をワークフローに渡します。そして、ワークフローが完了したら、除算の結果を取得します。

int dividend = 500;
int divisor = 36;

Dictionary<string, object> arguments = new Dictionary<string, object>();
arguments.Add("Dividend", dividend);
arguments.Add("Divisor", divisor);

IDictionary<string, object> outputs =
    WorkflowInvoker.Invoke(new Divide(), arguments);

Console.WriteLine("{0} / {1} = {2} Remainder {3}",
    dividend, divisor, outputs["Result"], outputs["Remainder"]);

Divide アクティビティでは、引数を使用して入力値を受け取り、計算結果の値を提示します。 RemainderOutArgument<T>は除算の残りの部分を渡すために使用されResult、派生アクティビティによってActivity<TResult>提供される出力引数は商を渡すために使用されます。

注意

カスタム アクティビティが、CodeActivity<TResult> をジェネリック型引数として持つジェネリックの Int32 から派生する場合、アクティビティを WorkflowInvoker Invoke メソッドを使用して呼び出すと、Int32 値が返されます。 さらに、 CodeActivity<TResult>.Execute メソッドは の代わりにvoid値をInt32返します。戻り値を設定する必要はありません。

public sealed class Divide : CodeActivity
{
    [RequiredArgument]
    public InArgument<int> Dividend { get; set; }

    [RequiredArgument]
    public InArgument<int> Divisor { get; set; }

    public OutArgument<int> Remainder { get; set; }
    public OutArgument<int> Result { get; set; }

    protected override void Execute(CodeActivityContext context)
    {
        int quotient = Dividend.Get(context) / Divisor.Get(context);
        int remainder = Dividend.Get(context) % Divisor.Get(context);

        Result.Set(context, quotient);
        Remainder.Set(context, remainder);
    }
}

コンストラクター

OutArgument<T>()

既定値を使用して OutArgument<T> クラスの新しいインスタンスを初期化します。

OutArgument<T>(Activity<Location<T>>)

指定した Activity<TResult> を使用して OutArgument<T> クラスの新しいインスタンスを初期化します。

OutArgument<T>(DelegateArgument)

指定した DelegateArgument を使用して OutArgument<T> クラスの新しいインスタンスを初期化します。

OutArgument<T>(Expression<Func<ActivityContext,T>>)

指定した式を使用して、OutArgument<T> クラスの新しいインスタンスを初期化します。

OutArgument<T>(Variable)

指定した Variable を使用して OutArgument<T> クラスの新しいインスタンスを初期化します。

フィールド

ResultValue

"結果" の定数値を表します。これは、式基本クラス ActivityWithResult における型 OutArgumentResult プロパティの名前に対応します。

(継承元 Argument)

プロパティ

ArgumentType

この Argument にバインドされたデータのデータ型を取得します。

(継承元 Argument)
Direction

ArgumentDirection を取得します。これは、Argument がアクティビティに入っていくデータ フロー、アクティビティから出てくるデータ フロー、またはアクティビティとの間で出入りするデータ フローのいずれを表すのかを指定します。

(継承元 Argument)
EvaluationOrder

引数の評価順序を指定するゼロベースの値を取得または設定します。

(継承元 Argument)
Expression

この Activity<TResult> の値を表す OutArgument<T> を取得します。

メソッド

Equals(Object)

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

(継承元 Object)
FromDelegateArgument(DelegateArgument)

指定した OutArgument<T> を使用して構築された新しい DelegateArgument を初期化して返します。

FromExpression(Activity<Location<T>>)

指定した OutArgument<T> を使用して構築された新しい Activity<TResult> を初期化して返します。

FromVariable(Variable)

指定した OutArgument<T> を使用して構築された新しい Variable を初期化して返します。

Get(ActivityContext)

指定したアクティビティ コンテキストを使用して OutArgument<T> の値を取得します。

Get<T>(ActivityContext)

指定された型およびアクティビティ コンテキストを使用して、引数の値を取得します。

(継承元 Argument)
GetHashCode()

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

(継承元 Object)
GetLocation(ActivityContext)

OutArgument<T> の値の場所を取得します。

GetType()

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

(継承元 Object)
MemberwiseClone()

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

(継承元 Object)
Set(ActivityContext, Object)

指定されたアクティビティ コンテキストを使用して引数の値を設定します。

(継承元 Argument)
Set(ActivityContext, T)

指定したアクティビティ コンテキストを使用して OutArgument<T> の値を設定します。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

演算子

Implicit(Activity<Location<T>> to OutArgument<T>)

指定した OutArgument<T> を使用して構築された新しい Activity<TResult> を初期化して返します。

Implicit(DelegateArgument to OutArgument<T>)

指定した OutArgument<T> を使用して構築された新しい DelegateArgument を初期化して返します。

Implicit(Variable to OutArgument<T>)

指定した OutArgument<T> を使用して構築された新しい Variable を初期化して返します。

適用対象