Condividi tramite


WorkflowApplication Costruttori

Definizione

Crea una nuova istanza della classe WorkflowApplication.

Overload

WorkflowApplication(Activity)

Crea una nuova istanza della classe WorkflowApplication con la definizione del flusso di lavoro specificata.

WorkflowApplication(Activity, WorkflowIdentity)

Crea una nuova istanza della classe WorkflowApplication con la definizione dei flussi di lavoro e l'identità delle definizioni specificati.

WorkflowApplication(Activity, IDictionary<String,Object>)

Crea una nuova istanza della classe WorkflowApplication che utilizza la definizione di flusso di lavoro specificata e i valori di argomento.

WorkflowApplication(Activity, IDictionary<String,Object>, WorkflowIdentity)

Crea una nuova istanza della classe WorkflowApplication che utilizza la definizione di flusso di lavoro specificata e i valori di argomento e l'identità della definizione.

WorkflowApplication(Activity)

Crea una nuova istanza della classe WorkflowApplication con la definizione del flusso di lavoro specificata.

public:
 WorkflowApplication(System::Activities::Activity ^ workflowDefinition);
public WorkflowApplication (System.Activities.Activity workflowDefinition);
new System.Activities.WorkflowApplication : System.Activities.Activity -> System.Activities.WorkflowApplication
Public Sub New (workflowDefinition As Activity)

Parametri

workflowDefinition
Activity

Definizione del flusso di lavoro.

Esempio

Nell'esempio seguente viene ospitato un flusso di lavoro tramite WorkflowApplication. Un'istanza WorkflowApplication viene costruita usando una definizione del flusso di lavoro costituita da una singola DiceRoll attività. L'attività DiceRoll dispone di due argomenti di output che rappresentano i risultati dell'operazione di lancio dei dadi. Quando il flusso di lavoro viene completato, gli output vengono recuperati nel gestore Completed e l'output seguente viene visualizzato alla console.

Workflow aae3fb48-7229-4737-b969-d63e131b96b3 Completed.   
The two dice are 1 and 5.  
public sealed class DiceRoll : CodeActivity
{
    public OutArgument<int> D1 { get; set; }
    public OutArgument<int> D2 { get; set; }

    static Random r = new Random();

    protected override void Execute(CodeActivityContext context)
    {
        D1.Set(context, r.Next(1, 7));
        D2.Set(context, r.Next(1, 7));
    }
}
 // Create a WorkflowApplication instance.
 WorkflowApplication wfApp = new WorkflowApplication(new DiceRoll());

 // Subscribe to any desired workflow lifecycle events.
 wfApp.Completed = delegate(WorkflowApplicationCompletedEventArgs e)
 {
     if (e.CompletionState == ActivityInstanceState.Faulted)
     {
         Console.WriteLine("Workflow {0} Terminated.", e.InstanceId);
         Console.WriteLine("Exception: {0}\n{1}",
             e.TerminationException.GetType().FullName,
             e.TerminationException.Message);
     }
     else if (e.CompletionState == ActivityInstanceState.Canceled)
     {
         Console.WriteLine("Workflow {0} Canceled.", e.InstanceId);
     }
     else
     {
         Console.WriteLine("Workflow {0} Completed.", e.InstanceId);

         // Outputs can be retrieved from the Outputs dictionary,
         // keyed by argument name.
         Console.WriteLine("The two dice are {0} and {1}.",
             e.Outputs["D1"], e.Outputs["D2"]);
     }
 };

// Run the workflow.
 wfApp.Run();

Si applica a

WorkflowApplication(Activity, WorkflowIdentity)

Crea una nuova istanza della classe WorkflowApplication con la definizione dei flussi di lavoro e l'identità delle definizioni specificati.

public:
 WorkflowApplication(System::Activities::Activity ^ workflowDefinition, System::Activities::WorkflowIdentity ^ definitionIdentity);
public WorkflowApplication (System.Activities.Activity workflowDefinition, System.Activities.WorkflowIdentity definitionIdentity);
new System.Activities.WorkflowApplication : System.Activities.Activity * System.Activities.WorkflowIdentity -> System.Activities.WorkflowApplication
Public Sub New (workflowDefinition As Activity, definitionIdentity As WorkflowIdentity)

Parametri

workflowDefinition
Activity

Definizione del flusso di lavoro.

definitionIdentity
WorkflowIdentity

Identità della definizione.

Si applica a

WorkflowApplication(Activity, IDictionary<String,Object>)

Crea una nuova istanza della classe WorkflowApplication che utilizza la definizione di flusso di lavoro specificata e i valori di argomento.

public:
 WorkflowApplication(System::Activities::Activity ^ workflowDefinition, System::Collections::Generic::IDictionary<System::String ^, System::Object ^> ^ inputs);
public WorkflowApplication (System.Activities.Activity workflowDefinition, System.Collections.Generic.IDictionary<string,object> inputs);
new System.Activities.WorkflowApplication : System.Activities.Activity * System.Collections.Generic.IDictionary<string, obj> -> System.Activities.WorkflowApplication
Public Sub New (workflowDefinition As Activity, inputs As IDictionary(Of String, Object))

Parametri

workflowDefinition
Activity

Definizione del flusso di lavoro.

inputs
IDictionary<String,Object>

I valori per argomenti definiti nell'attività radice della definizione del flusso di lavoro, con chiave basata sul nome dell'argomento.

Esempio

Nell'esempio seguente viene ospitato un flusso di lavoro tramite WorkflowApplication. Un'istanza WorkflowApplication viene costruita usando una definizione del flusso di lavoro costituita da una singola Divide attività che accetta due argomenti di input e un dizionario di argomenti di input contenenti i due valori da passare, con chiave in base al nome dell'argomento. Vengono gestiti gli eventi del ciclo di vita del flusso di lavoro desiderati e il flusso di lavoro viene richiamato con una chiamata a Run. Quando il flusso di lavoro viene completato, l'output seguente viene visualizzato nella console.

Workflow 8dc844c1-bbf8-4b21-a9a2-05f89e416055 Completed  
500 / 36 = 13 Remainder 32  
Workflow 8dc844c1-bbf8-4b21-a9a2-05f89e416055 Unloaded.  
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);
    }
}
int dividend = 500;
int divisor = 36;

Dictionary<string, object> inputs = new Dictionary<string, object>();
inputs.Add("Dividend", dividend);
inputs.Add("Divisor", divisor);

// Create a WorkflowApplication instance.
WorkflowApplication wfApp = new WorkflowApplication(new Divide(), inputs);

// Subscribe to any desired workflow lifecycle events.
wfApp.Completed = delegate(WorkflowApplicationCompletedEventArgs e)
{
    if (e.CompletionState == ActivityInstanceState.Faulted)
    {
        Console.WriteLine("Workflow {0} Terminated.", e.InstanceId);
        Console.WriteLine("Exception: {0}\n{1}",
            e.TerminationException.GetType().FullName,
            e.TerminationException.Message);
    }
    else if (e.CompletionState == ActivityInstanceState.Canceled)
    {
        Console.WriteLine("Workflow {0} Canceled.", e.InstanceId);
    }
    else
    {
        Console.WriteLine("Workflow {0} Completed.", e.InstanceId);

        // Outputs can be retrieved from the Outputs dictionary,
        // keyed by argument name.
        Console.WriteLine("{0} / {1} = {2} Remainder {3}",
            dividend, divisor, e.Outputs["Result"], e.Outputs["Remainder"]);
    }
};

// Run the workflow.
wfApp.Run();

Si applica a

WorkflowApplication(Activity, IDictionary<String,Object>, WorkflowIdentity)

Crea una nuova istanza della classe WorkflowApplication che utilizza la definizione di flusso di lavoro specificata e i valori di argomento e l'identità della definizione.

public:
 WorkflowApplication(System::Activities::Activity ^ workflowDefinition, System::Collections::Generic::IDictionary<System::String ^, System::Object ^> ^ inputs, System::Activities::WorkflowIdentity ^ definitionIdentity);
public WorkflowApplication (System.Activities.Activity workflowDefinition, System.Collections.Generic.IDictionary<string,object> inputs, System.Activities.WorkflowIdentity definitionIdentity);
new System.Activities.WorkflowApplication : System.Activities.Activity * System.Collections.Generic.IDictionary<string, obj> * System.Activities.WorkflowIdentity -> System.Activities.WorkflowApplication
Public Sub New (workflowDefinition As Activity, inputs As IDictionary(Of String, Object), definitionIdentity As WorkflowIdentity)

Parametri

workflowDefinition
Activity

Definizione del flusso di lavoro.

inputs
IDictionary<String,Object>

Identità della definizione.

definitionIdentity
WorkflowIdentity

I valori per argomenti definiti nell'attività radice della definizione del flusso di lavoro, con chiave basata sul nome dell'argomento.

Si applica a