OutArgument<T> Classe

Definição

Um terminal de ligação que representa o fluxo de dados para fora de uma atividade.

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 Genérico

T

O tipo de dados do OutArgument<T>.

Herança
OutArgument<T>
Atributos

Exemplos

O exemplo de código seguinte demonstra a criação de um OutArgument<T>. Este exemplo é da amostra 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")
                    },
            },
        }
};

Observações

Um é usado para transferir OutArgument<T> dados para fora de uma atividade. Se a atividade for a atividade raiz de um fluxo de trabalho, então também é usada para transferir dados do fluxo de trabalho para o anfitrião do workflow. Neste exemplo, uma atividade personalizada Divide que tem dois argumentos de entrada e um de saída é usada como atividade raiz de um fluxo de trabalho. A aplicação anfitriã passa dois valores para o fluxo de trabalho e depois recupera o resultado da divisão após a conclusão do fluxo.

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

A Divide atividade utiliza argumentos para receber os valores de entrada e para fornecer os valores de resultado calculados. O RemainderOutArgument<T> é usado para distribuir o restante da divisão, e o Result argumento de saída fornecido pelas Activity<TResult> atividades derivadas é usado para distribuir o quociente.

Note

Se a sua atividade personalizada for derivada do genérico CodeActivity<TResult> com um Int32 argumento como tipo genérico, ao invocar a atividade com o WorkflowInvoker método Invoke, ela retorna um Int32 valor. Além disso, o CodeActivity<TResult>.Execute método devolve um Int32 valor em vez de void e não precisa de definir um valor de retorno.

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

Construtores

Name Description
OutArgument<T>()

Inicialize uma nova instância da OutArgument<T> classe usando valores padrão.

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

Inicializa uma nova instância da OutArgument<T> classe usando o especificado Activity<TResult>.

OutArgument<T>(DelegateArgument)

Inicializa uma nova instância da OutArgument<T> classe usando o especificado DelegateArgument.

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

Inicializa uma nova instância da OutArgument<T> classe usando a expressão especificada.

OutArgument<T>(Variable)

Inicializa uma nova instância da OutArgument<T> classe usando o especificado Variable.

Campos

Name Description
ResultValue

Representa o valor constante de "Resultado", que corresponde ao nome da Result propriedade do tipo OutArgument na classe ActivityWithResultbase da expressão .

(Herdado de Argument)

Propriedades

Name Description
ArgumentType

Obtém o tipo de dado para os dados ligados a este Argument.

(Herdado de Argument)
Direction

Obtém um ArgumentDirection que especifica se representa Argument o fluxo de dados para uma atividade, para fora de uma atividade, ou ambos para dentro e para fora de uma atividade.

(Herdado de Argument)
EvaluationOrder

Obtém ou define um valor baseado em zero que especifica a ordem em que o argumento é avaliado.

(Herdado de Argument)
Expression

Obtém um Activity<TResult> que representa o valor deste OutArgument<T>.

Métodos

Name Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
FromDelegateArgument(DelegateArgument)

Inicializa e retorna um novo OutArgument<T> construído usando o especificado DelegateArgument.

FromExpression(Activity<Location<T>>)

Inicializa e retorna um novo OutArgument<T> construído usando o especificado Activity<TResult>.

FromVariable(Variable)

Inicializa e retorna um novo OutArgument<T> construído usando o especificado Variable.

Get(ActivityContext)

Obtém o valor de OutArgument<T> usando o contexto de atividade especificado.

Get<T>(ActivityContext)

Obtém o valor do argumento usando o tipo especificado e o contexto de atividade.

(Herdado de Argument)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetLocation(ActivityContext)

Obtém a localização do valor para o OutArgument<T>.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
Set(ActivityContext, Object)

Define o valor do argumento usando o contexto de atividade especificado.

(Herdado de Argument)
Set(ActivityContext, T)

Define o valor de usando OutArgument<T> o contexto de atividade especificado.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Operadores

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

Inicializa e retorna um novo OutArgument<T> construído usando o especificado Activity<TResult>.

Implicit(DelegateArgument to OutArgument<T>)

Inicializa e retorna um novo OutArgument<T> construído usando o especificado DelegateArgument.

Implicit(Variable to OutArgument<T>)

Inicializa e retorna um novo OutArgument<T> construído usando o especificado Variable.

Aplica-se a