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”的常量值,该值对应于表达式基类 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

适用于