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

Примечание

Если пользовательское действие является производным от универсального класса CodeActivity<TResult> с аргументом Int32 универсального типа, то в случае вызова действия методом Invoke класса 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 типа 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.

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