OutArgument<T> Clase

Definición

Terminal de enlace que representa el flujo de datos de salida de una actividad.

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

Parámetros de tipo

T

Tipo de datos de OutArgument<T>.

Herencia
OutArgument<T>
Atributos

Ejemplos

En la siguiente muestra de código se presenta la creación de OutArgument<T>. Este ejemplo se ha extraído de la muestra 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")
                    },
            },
        }
};

Comentarios

El OutArgument<T> se utiliza para canalizar el flujo de datos de salida de una actividad. Si la actividad es la actividad raíz de un flujo de trabajo, también se utiliza para el flujo de datos de salida del flujo de trabajo al host del flujo de trabajo. En este ejemplo, se utiliza como la actividad raíz de un flujo de trabajo una actividad Divide personalizada que tiene dos argumentos de entrada y un argumento de salida. La aplicación host pasa dos valores al flujo de trabajo y, a continuación, recupera el resultado de la división cuando se completa el flujo de trabajo.

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"]);

La actividad Divide utiliza los argumentos para recibir los valores de entrada y proporcionar los valores calculados de resultado. RemainderOutArgument<T> se usa para pasar el resto de la división y el Result argumento de salida proporcionado por Activity<TResult> las actividades derivadas se usa para pasar el cociente.

Nota

Si su actividad personalizada se deriva del objeto CodeActivity<TResult> genérico con un valor Int32 como su argumento de tipo genérico, al invocar la actividad con el método Invoke WorkflowInvoker, devuelve un valor Int32. Además, el CodeActivity<TResult>.Execute método devolverá un Int32 valor en lugar de void y no es necesario establecer un valor devuelto.

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);
    }
}

Constructores

OutArgument<T>()

Inicializa una nueva instancia de la clase OutArgument<T> utilizando los valores predeterminados.

OutArgument<T>(Activity<Location<T>>)

Inicializa una nueva instancia de la clase OutArgument<T> utilizando la clase Activity<TResult> especificada.

OutArgument<T>(DelegateArgument)

Inicializa una nueva instancia de la clase OutArgument<T> utilizando la clase DelegateArgument especificada.

OutArgument<T>(Expression<Func<ActivityContext,T>>)

Inicializa una nueva instancia de la clase OutArgument<T> utilizando la expresión especificada.

OutArgument<T>(Variable)

Inicializa una nueva instancia de la clase OutArgument<T> utilizando la clase Variable especificada.

Campos

ResultValue

Representa el valor constante de "Resultado", que corresponde al nombre de la propiedad Result de tipo OutArgument de la clase base de la expresión ActivityWithResult.

(Heredado de Argument)

Propiedades

ArgumentType

Obtiene el tipo de datos de los datos enlazados a este objeto Argument.

(Heredado de Argument)
Direction

Obtiene un objeto ArgumentDirection que especifica si el argumento Argument representa el flujo de datos de entrada de una actividad, de salida de la actividad o tanto de entrada como de salida de una actividad.

(Heredado de Argument)
EvaluationOrder

Obtiene o establece un valor basado en cero que especifica el orden en el que se evalúa el argumento.

(Heredado de Argument)
Expression

Obtiene una clase Activity<TResult> que representa el valor de esta clase OutArgument<T>.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
FromDelegateArgument(DelegateArgument)

Inicializa y devuelve una nueva clase OutArgument<T> construida usando la DelegateArgument especificada.

FromExpression(Activity<Location<T>>)

Inicializa y devuelve una nueva clase OutArgument<T> construida usando la Activity<TResult> especificada.

FromVariable(Variable)

Inicializa y devuelve una nueva clase OutArgument<T> construida usando la Variable especificada.

Get(ActivityContext)

Obtiene el valor de la clase OutArgument<T> utilizando el contexto de actividad especificado.

Get<T>(ActivityContext)

Obtiene el valor del argumento utilizando el tipo y el contexto de actividad especificados.

(Heredado de Argument)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetLocation(ActivityContext)

Obtiene la ubicación del valor de la clase OutArgument<T>.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
Set(ActivityContext, Object)

Establece el valor del argumento utilizando el contexto de actividad especificado.

(Heredado de Argument)
Set(ActivityContext, T)

Establece el valor del argumento OutArgument<T> utilizando el contexto de actividad especificado.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Operadores

Implicit(Activity<Location<T>> to OutArgument<T>)

Inicializa y devuelve una nueva clase OutArgument<T> construida usando la Activity<TResult> especificada.

Implicit(DelegateArgument to OutArgument<T>)

Inicializa y devuelve una nueva clase OutArgument<T> construida usando la DelegateArgument especificada.

Implicit(Variable to OutArgument<T>)

Inicializa y devuelve una nueva clase OutArgument<T> construida usando la Variable especificada.

Se aplica a