Metodo WorkflowInvoker.Invoke<TResult>(Activity<TResult>)

.NET Framework (current version)
 

Data di pubblicazione: ottobre 2016

Richiama in modo sincrono un flusso di lavoro utilizzando la definizione del flusso di lavoro passata al costruttore WorkflowInvoker.

Spazio dei nomi:   System.Activities
Assembly:  System.Activities (in System.Activities.dll)

public static TResult Invoke<TResult>(
	Activity<TResult> workflow
)

Parametri

workflow
Type: System.Activities.Activity<TResult>

Definizione del flusso di lavoro da richiamare. La definizione di flusso di lavoro deriva da ActivityWithResult.

Valore restituito

Type: TResult

Un valore di tipo TResult con il risultato dell'esecuzione dell'attività.

Parametri tipo

TResult

Il tipo di flusso di lavoro.

Questo metodo si blocca fino a che il flusso di lavoro è stato completato, mentre include tempo di inattività. Ogni esecuzione del flusso di lavoro è garantita per essere eseguita sul thread di chiamata. Per configurare un intervallo di timeout nel quale il flusso di lavoro deve essere completato, usare uno degli overload Invoke che accettano un oggetto TimeSpan.

Nell'esempio seguente viene richiamato un flusso di lavoro composto da una singola Add attività che dispone di due argomenti di input e, poiché deriva da CodeActivity<int> ha ben definiti Result argomento di output. Quando viene richiamato il flusso di lavoro, viene passato il dizionario arguments che contiene i valori per ogni argomento di input, con chiavi in base al nome dell'argomento. Quando la chiamata a Invoke restituisce, il valore di Result viene restituito l'argomento di output. Questo esempio di codice si basa il utilizzo della classe WorkflowInvoker esempio.

public sealed class Add : CodeActivity<int>
{
    public InArgument<int> X { get; set; }
    public InArgument<int> Y { get; set; }

    protected override int Execute(CodeActivityContext context)
    {
        int x = X.Get(context);
        int y = Y.Get(context);

        return x + y;
    }
}
int x = 1;
int y = 2;

Dictionary<string, object> arguments = new Dictionary<string, object>();
arguments.Add("X", x);
arguments.Add("Y", y);

Console.WriteLine("Invoking Add.");

int result = WorkflowInvoker.Invoke(new Add(), arguments);

Console.WriteLine("{0} + {1} = {2}", x, y, result);

.NET Framework
Disponibile da 4.0
Torna all'inizio
Mostra: