次の方法で共有


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>の作成を示しています。 この例は、フォーマッタ サンプルの例です。

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

手記

カスタム アクティビティがジェネリック型引数として Int32 を持つジェネリック CodeActivity<TResult> から派生した場合、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

式の基底クラス ActivityWithResultOutArgument 型の Result プロパティの名前に対応する "Result" の定数値を表します。

(継承元 Argument)

プロパティ

名前 説明
ArgumentType

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

(継承元 Argument)
Direction

Argument がアクティビティへのデータ フロー、アクティビティからのデータ フロー、またはアクティビティとの間のデータ フローを表すかどうかを示す ArgumentDirection を取得します。

(継承元 Argument)
EvaluationOrder

引数の評価順序を指定する 0 から始まる値を取得または設定します。

(継承元 Argument)
Expression

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

メソッド

名前 説明
Equals(Object)

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

(継承元 Object)
FromDelegateArgument(DelegateArgument)

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

FromExpression(Activity<Location<T>>)

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

FromVariable(Variable)

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

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

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

Implicit(DelegateArgument to OutArgument<T>)

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

Implicit(Variable to OutArgument<T>)

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

適用対象