Creazione di attività del flusso di lavoro tramite la classe CodeActivityWorkflow Activity Authoring Using the CodeActivity Class

Le attività create ereditando dall'oggetto CodeActivity possono implementare il comportamento imperativo di base eseguendo l'override del metodo Execute.Activities created by inheriting from CodeActivity can implement basic imperative behavior by overriding the Execute method.

Uso di CodeActivityContextUsing CodeActivityContext

L'accesso a funzionalità dell'esecuzione del flusso di lavoro può essere eseguito dall'interno del metodo Execute tramite i membri del parametro context, di tipo CodeActivityContext.Features of the workflow runtime can be accessed from within the Execute method by using members of the context parameter, of type CodeActivityContext. Tra le funzionalità disponibili tramite l'oggetto CodeActivityContext sono incluse le seguenti:The features available through CodeActivityContext include the following:

  • Recupero e impostazione di valori di variabili e di argomenti.Getting and setting the values of variables and arguments.

  • Funzionalità di rilevamento personalizzate tramite Track.Custom tracking features using Track.

  • Accesso alle proprietà di esecuzione dell'attività tramite il metodo GetProperty.Access to the activity’s execution properties using GetProperty.

Per creare un'attività personalizzata che eredita da CodeActivityTo create a custom activity that inherits from CodeActivity

  1. Aprire Visual Studio 2010Visual Studio 2010.OpenVisual Studio 2010Visual Studio 2010.

  2. Selezionare File, nuovae quindi progetto.Select File, New, and then Project. Selezionare Workflow 4.0 in Visual c# nel tipi di progetto window e selezionare il v2010 nodo.Select Workflow 4.0 under Visual C# in the Project Types window, and select the v2010 node. Selezionare libreria attività nel modelli finestra.Select Activity Library in the Templates window. Assegnare al nuovo progetto il nome HelloActivity.Name the new project HelloActivity.

  3. Fare doppio clic su Activity1 nel progetto HelloActivity e selezionare eliminare.Right-click Activity1.xaml in the HelloActivity project and select Delete.

  4. Fare clic sul progetto HelloActivity e selezionare Aggiungi e quindi classe.Right-click the HelloActivity project and select Add , and then Class. Assegnare alla nuova classe il nome HelloActivity.cs.Name the new class HelloActivity.cs.

  5. Nel file HelloActivity.cs aggiungere le seguenti istruzioni using.In the HelloActivity.cs file, add the following using directives.

    using System.Activities;  
    using System.Activities.Statements;  
    
  6. Assicurarsi che la nuova classe erediti dall'oggetto CodeActivity aggiungendo una classe base alla dichiarazione di classe.Make the new class inherit from CodeActivity by adding a base class to the class declaration.

    class HelloActivity : CodeActivity  
    
  7. Aggiungere la funzionalità alla classe aggiungendo un metodo Execute.Add functionality to the class by adding an Execute method.

    protected override void Execute(CodeActivityContext context)  
    {  
        Console.WriteLine("Hello World!");  
    }  
    
  8. Usare l'oggetto CodeActivityContext per creare un record di rilevamento.Use the CodeActivityContext to create a tracking record.

    protected override void Execute(CodeActivityContext context)  
    {  
        Console.WriteLine("Hello World!");  
        CustomTrackingRecord record = new CustomTrackingRecord("MyRecord");  
        record.Data.Add(new KeyValuePair<String, Object>("ExecutionTime", DateTime.Now));  
        context.Track(record);  
    }