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 活动使用参数来接收输入值并提供计算结果值。 Remainder OutArgument<T> 用于传递除法的其余部分,Activity<TResult> 派生活动提供的 Result 输出参数用于传递商。

注意

如果自定义活动派生自泛型 CodeActivity<TResult>Int32 作为其泛型类型参数,则当使用 WorkflowInvoker Invoke 方法调用活动时,它将返回 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>>)

使用指定的 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

表示“Result”的常量值,该值对应于表达式基类 ActivityWithResultOutArgument 类型的 Result 属性的名称。

(继承自 Argument)

属性

ArgumentType

获取绑定到此 Argument的数据的数据类型。

(继承自 Argument)
Direction

获取一个 ArgumentDirection,该值指定 Argument 是表示数据流到活动、活动流出还是传入和传出活动。

(继承自 Argument)
EvaluationOrder

获取或设置一个从零开始的值,该值指定参数的计算顺序。

(继承自 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>

适用于