OutArgument<T> Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
A binding terminal that represents the flow of data out of an activity.
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
Type Parameters
- T
The data type of the OutArgument<T>.
- Inheritance
- Attributes
Examples
The following code sample demonstrates creating an OutArgument<T>. This example is from the Formatter sample.
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")
},
},
}
};
Remarks
An OutArgument<T> is used to flow data out of an activity. If the activity is the root activity of a workflow, then it is also used to flow data out of the workflow to the workflow host. In this example, a custom Divide
activity that has two input arguments and one output argument is used as the root activity of a workflow. The host application passes two values into the workflow and then retrieves the result of the division after the workflow completes.
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"]);
The Divide
activity uses arguments to receive the input values and to provide the computed result values. The Remainder
OutArgument<T> is used to pass out the remainder of the division, and the Result output argument provided by Activity<TResult> derived activities is used to pass out the quotient.
Note
If your custom activity is derived from the generic CodeActivity<TResult> with an Int32 as its generic type argument, when you invoke the activity with the WorkflowInvoker Invoke method, it returns an Int32 value. In Addition, the CodeActivity<TResult>.Execute method will return an Int32 value instead of void
and you do not need to set a return value.
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);
}
}
Constructors
OutArgument<T>() |
Initialize a new instance of the OutArgument<T> class using default values. |
OutArgument<T>(Activity<Location<T>>) |
Initializes a new instance of the OutArgument<T> class using the specified Activity<TResult>. |
OutArgument<T>(DelegateArgument) |
Initializes a new instance of the OutArgument<T> class using the specified DelegateArgument. |
OutArgument<T>(Expression<Func<ActivityContext,T>>) |
Initializes a new instance of the OutArgument<T> class using the specified expression. |
OutArgument<T>(Variable) |
Initializes a new instance of the OutArgument<T> class using the specified Variable. |
Fields
ResultValue |
Represents the constant value of "Result", which corresponds to the name of the Result property of type OutArgument in the expression base class ActivityWithResult. (Inherited from Argument) |
Properties
ArgumentType |
Gets the data type for the data bound to this Argument. (Inherited from Argument) |
Direction |
Gets an ArgumentDirection that specifies whether the Argument represents the flow of data into an activity, out of an activity, or both into and out of an activity. (Inherited from Argument) |
EvaluationOrder |
Gets or sets a zero-based value that specifies the order in which the argument is evaluated. (Inherited from Argument) |
Expression |
Gets an Activity<TResult> that represents the value of this OutArgument<T>. |
Methods
Equals(Object) |
Determines whether the specified object is equal to the current object. (Inherited from Object) |
FromDelegateArgument(DelegateArgument) |
Initializes and returns a new OutArgument<T> constructed using the specified DelegateArgument. |
FromExpression(Activity<Location<T>>) |
Initializes and returns a new OutArgument<T> constructed using the specified Activity<TResult>. |
FromVariable(Variable) |
Initializes and returns a new OutArgument<T> constructed using the specified Variable. |
Get(ActivityContext) |
Gets the value of the OutArgument<T> using the specified activity context. |
Get<T>(ActivityContext) |
Gets the value of the argument using the specified type and activity context. (Inherited from Argument) |
GetHashCode() |
Serves as the default hash function. (Inherited from Object) |
GetLocation(ActivityContext) |
Gets the location of the value for the OutArgument<T>. |
GetType() |
Gets the Type of the current instance. (Inherited from Object) |
MemberwiseClone() |
Creates a shallow copy of the current Object. (Inherited from Object) |
Set(ActivityContext, Object) |
Sets the value of the argument using the specified activity context. (Inherited from Argument) |
Set(ActivityContext, T) |
Sets the value of the OutArgument<T> using the specified activity context. |
ToString() |
Returns a string that represents the current object. (Inherited from Object) |
Operators
Implicit(Activity<Location<T>> to OutArgument<T>) |
Initializes and returns a new OutArgument<T> constructed using the specified Activity<TResult>. |
Implicit(DelegateArgument to OutArgument<T>) |
Initializes and returns a new OutArgument<T> constructed using the specified DelegateArgument. |
Implicit(Variable to OutArgument<T>) |
Initializes and returns a new OutArgument<T> constructed using the specified Variable. |