Udostępnij za pośrednictwem


OutArgument<T> Klasa

Definicja

Terminal powiązania reprezentujący przepływ danych z działania.

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

Parametry typu

T

Typ danych OutArgument<T>.

Dziedziczenie
OutArgument<T>
Atrybuty

Przykłady

Poniższy przykładowy kod przedstawia tworzenie OutArgument<T>. Ten przykład pochodzi z przykładu programu 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")
                    },
            },
        }
};

Uwagi

OutArgument<T> służy do przepływu danych z działania. Jeśli działanie jest działaniem głównym przepływu pracy, jest ono również używane do przepływu danych z przepływu pracy do hosta przepływu pracy. W tym przykładzie niestandardowe działanie Divide, które ma dwa argumenty wejściowe, a jeden argument wyjściowy jest używany jako działanie główne przepływu pracy. Aplikacja hosta przekazuje dwie wartości do przepływu pracy, a następnie pobiera wynik dzielenia po zakończeniu przepływu pracy.

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

Działanie Divide używa argumentów do odbierania wartości wejściowych i podawania obliczonych wartości wyników. Remainder OutArgument<T> służy do przekazywania reszty dzielenia, a argument wyjściowy Result dostarczony przez Activity<TResult> działania pochodne jest używany do przekazywania ilorazu.

Nuta

Jeśli działanie niestandardowe pochodzi z ogólnego CodeActivity<TResult> z Int32 jako argument typu ogólnego, podczas wywoływania działania za pomocą metody WorkflowInvoker Invoke zwraca wartość Int32. Ponadto metoda CodeActivity<TResult>.Execute zwróci wartość Int32 zamiast void i nie trzeba ustawiać wartości zwracanej.

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

Konstruktory

OutArgument<T>()

Zainicjuj nowe wystąpienie klasy OutArgument<T> przy użyciu wartości domyślnych.

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

Inicjuje nowe wystąpienie klasy OutArgument<T> przy użyciu określonego Activity<TResult>.

OutArgument<T>(DelegateArgument)

Inicjuje nowe wystąpienie klasy OutArgument<T> przy użyciu określonego DelegateArgument.

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

Inicjuje nowe wystąpienie klasy OutArgument<T> przy użyciu określonego wyrażenia.

OutArgument<T>(Variable)

Inicjuje nowe wystąpienie klasy OutArgument<T> przy użyciu określonego Variable.

Pola

ResultValue

Reprezentuje stałą wartość "Result", która odpowiada nazwie właściwości Result typu OutArgument w klasie bazowej wyrażeń ActivityWithResult.

(Odziedziczone po Argument)

Właściwości

ArgumentType

Pobiera typ danych powiązanych z tym Argument.

(Odziedziczone po Argument)
Direction

Pobiera ArgumentDirection, który określa, czy Argument reprezentuje przepływ danych do działania, z działania, czy do i z działania.

(Odziedziczone po Argument)
EvaluationOrder

Pobiera lub ustawia wartość opartą na zerach, która określa kolejność obliczania argumentu.

(Odziedziczone po Argument)
Expression

Pobiera Activity<TResult> reprezentującą wartość tego OutArgument<T>.

Metody

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.

(Odziedziczone po Object)
FromDelegateArgument(DelegateArgument)

Inicjuje i zwraca nowy OutArgument<T> skonstruowany przy użyciu określonego DelegateArgument.

FromExpression(Activity<Location<T>>)

Inicjuje i zwraca nowy OutArgument<T> skonstruowany przy użyciu określonego Activity<TResult>.

FromVariable(Variable)

Inicjuje i zwraca nowy OutArgument<T> skonstruowany przy użyciu określonego Variable.

Get(ActivityContext)

Pobiera wartość OutArgument<T> przy użyciu określonego kontekstu działania.

Get<T>(ActivityContext)

Pobiera wartość argumentu przy użyciu określonego typu i kontekstu działania.

(Odziedziczone po Argument)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetLocation(ActivityContext)

Pobiera lokalizację wartości dla OutArgument<T>.

GetType()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
Set(ActivityContext, Object)

Ustawia wartość argumentu przy użyciu określonego kontekstu działania.

(Odziedziczone po Argument)
Set(ActivityContext, T)

Ustawia wartość OutArgument<T> przy użyciu określonego kontekstu działania.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Operatory

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

Inicjuje i zwraca nowy OutArgument<T> skonstruowany przy użyciu określonego Activity<TResult>.

Implicit(DelegateArgument to OutArgument<T>)

Inicjuje i zwraca nowy OutArgument<T> skonstruowany przy użyciu określonego DelegateArgument.

Implicit(Variable to OutArgument<T>)

Inicjuje i zwraca nowy OutArgument<T> skonstruowany przy użyciu określonego Variable.

Dotyczy