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>. Этот пример взят из образца 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 универсального типа, то в случае вызова действия методом 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. |
Применяется к
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по