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> 會用來從活動中傳出資料。 如果此活動是工作流程的根活動,則也會用來將工作流程中的資料傳出至工作流程主機。 在這個範例中,自訂的 Divide 活動擁有兩個輸入引數和一個做為工作流程之根活動的輸出引數。 主應用程式將兩個值傳入工作流程,然後在工作流程完成後擷取除法運算的結果。

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 叫用方法的活動,它會傳回 Int32 值。 此外, CodeActivity<TResult>.Execute 方法會傳回值, Int32 而不是 void ,而且您不需要設定傳回值。

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

使用指定的 OutArgument<T>,初始化 Activity<TResult> 類別的新執行個體。

OutArgument<T>(DelegateArgument)

使用指定的 OutArgument<T>,初始化 DelegateArgument 類別的新執行個體。

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

使用指定的運算式,初始化 OutArgument<T> 類別的新執行個體。

OutArgument<T>(Variable)

使用指定的 OutArgument<T>,初始化 Variable 類別的新執行個體。

欄位

ResultValue

表示 "Result" 的常數值,該值在運算式基底類別 Result 中會對應至型別 OutArgumentActivityWithResult 屬性名稱。

(繼承來源 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

適用於