Поделиться через


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> используется для потока данных из действия. Если действие является корневым действием рабочего процесса, оно также используется для потока данных из рабочего процесса в узел рабочего процесса. В этом примере настраиваемое действие 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> используется для передачи оставшейся части деления, а аргумент выходных данных Result, предоставленный Activity<TResult> производными действиями, используется для передачи кворента.

Заметка

Если настраиваемое действие является производным от универсального 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>>)

Инициализирует новый экземпляр класса 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 типа OutArgument в базовом классе выражения ActivityWithResult.

(Унаследовано от 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.

Применяется к