OutArgument<T> Klasse

Definition

Ein Bindungsterminal, das den Datenfluss aus einer Aktivität darstellt.

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

Typparameter

T

Der Datentyp des OutArgument<T>-Elements.

Vererbung
OutArgument<T>
Attribute

Beispiele

Im folgenden Codebeispiel wird das Erstellen eines OutArgument<T> gezeigt. Dieses Beispiel stammt aus dem Formatiererbeispiel.

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

Hinweise

Ein OutArgument<T> wird für den Datenfluss aus einer Aktivität verwendet. Wenn die Aktivität die Stammaktivität eines Workflows ist, dann wird das Element auch für den Datenfluss vom Workflow zum Workflowhost verwendet. In diesem Beispiel wird eine benutzerdefinierte Divide-Aktivität als Stammaktivität eines Workflows verwendet, die über zwei Eingabeargumente und ein Ausgabeargument verfügt. Die Hostanwendung übergibt zwei Werte an den Workflow und ruft dann das Ergebnis der Division ab, nachdem der Workflow abgeschlossen ist.

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

Die Divide-Aktivität verwendet Argumente, um die Eingabewerte zu empfangen und die berechneten Ergebniswerte bereitzustellen. Wird RemainderOutArgument<T> verwendet, um den Rest der Division zu übergeben, und das Result von Activity<TResult> abgeleiteten Aktivitäten bereitgestellte Ausgabeargument wird verwendet, um den Quotienten zu übergeben.

Hinweis

Wenn die benutzerdefinierte Aktivität von der generischen CodeActivity<TResult> mit Int32 als generischem Typargument abgeleitet wird und Sie die Aktivität mit der WorkflowInvoker-Aufrufmethode aufrufen, wird ein Int32-Wert zurückgegeben. Darüber hinaus gibt die CodeActivity<TResult>.Execute -Methode einen Int32 Wert anstelle von void zurück, und Sie müssen keinen Rückgabewert festlegen.

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

Konstruktoren

OutArgument<T>()

Initialisiert eine neue Instanz der OutArgument<T>-Klasse mit Standardwerten.

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

Initialisiert eine neue Instanz der OutArgument<T>-Klasse mit dem angegebenen Activity<TResult>.

OutArgument<T>(DelegateArgument)

Initialisiert eine neue Instanz der OutArgument<T>-Klasse mit dem angegebenen DelegateArgument.

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

Initialisiert mit dem angegebenen Ausdruck eine neue Instanz der OutArgument<T>-Klasse.

OutArgument<T>(Variable)

Initialisiert eine neue Instanz der OutArgument<T>-Klasse mit dem angegebenen Variable.

Felder

ResultValue

Stellt den konstanten Wert von „Result“ dar, der dem Namen der Result-Eigenschaft des Typs OutArgument in der Ausdrucksbasisklasse ActivityWithResult entspricht.

(Geerbt von Argument)

Eigenschaften

ArgumentType

Ruft den Datentyp für die Daten ab, die an dieses Argument-Element gebunden sind.

(Geerbt von Argument)
Direction

Ruft ein ArgumentDirection-Element ab, mit dem angegeben wird, ob das Argument den Datenfluss in eine Aktivität, aus einer Aktivität oder in beide Richtungen darstellt.

(Geerbt von Argument)
EvaluationOrder

Ruft einen nullbasierten Wert ab (bzw. legt diesen fest), der die Reihenfolge angibt, in der das Argument ausgewertet wird.

(Geerbt von Argument)
Expression

Ruft eine Activity<TResult> ab, die den Wert von OutArgument<T> darstellt.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
FromDelegateArgument(DelegateArgument)

Initialisiert mit der angegebenen OutArgument<T> ein neues DelegateArgument und gibt es zurück.

FromExpression(Activity<Location<T>>)

Initialisiert mit der angegebenen OutArgument<T> ein neues Activity<TResult> und gibt es zurück.

FromVariable(Variable)

Initialisiert mit der angegebenen OutArgument<T> ein neues Variable und gibt es zurück.

Get(ActivityContext)

Ruft den Wert von OutArgument<T> mithilfe des angegebenen Aktivitätskontexts ab.

Get<T>(ActivityContext)

Ruft den Wert des Arguments mithilfe des angegebenen Typs und Aktivitätskontexts ab.

(Geerbt von Argument)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetLocation(ActivityContext)

Ruft den Speicherort des Werts für das OutArgument<T> ab.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
Set(ActivityContext, Object)

Legt den Wert des Arguments mithilfe des angegebenen Aktivitätskontexts fest.

(Geerbt von Argument)
Set(ActivityContext, T)

Legt den Wert von OutArgument<T> mithilfe des angegebenen Aktivitätskontexts fest.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Operatoren

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

Initialisiert mit der angegebenen OutArgument<T> ein neues Activity<TResult> und gibt es zurück.

Implicit(DelegateArgument to OutArgument<T>)

Initialisiert mit der angegebenen OutArgument<T> ein neues DelegateArgument und gibt es zurück.

Implicit(Variable to OutArgument<T>)

Initialisiert mit der angegebenen OutArgument<T> ein neues Variable und gibt es zurück.

Gilt für: