Condividi tramite


Classe di base NativeActivity

NativeActivity è una classe astratta con un costruttore protetto. Come l'oggetto CodeActivity, NativeActivity viene usato per la scrittura del comportamento imperativo implementando un metodo Execute. A differenza dell'oggetto CodeActivity, NativeActivity dispone di accesso a tutte le funzionalità esposte dell'esecuzione del flusso di lavoro tramite l'oggetto NativeActivityContext passato al metodo Execute.

Uso di NativeActivityContext

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 NativeActivityContext. Tra le funzionalità disponibili tramite l'oggetto NativeActivityContext sono incluse le seguenti:

Per creare un'attività personalizzata che eredita da NativeActivity

  1. Aprire OpenVisual Studio 2010.

  2. Scegliere File, Nuovo, quindi Progetto. Selezionare Workflow 4.0 sotto Visual C# nella finestra Tipi progetto e scegliere il nodo v2010. Selezionare Libreria attività nella finestra Modelli. Assegnare al nuovo progetto il nome HelloActivity.

  3. Fare clic con il pulsante destro del mouse su Activity1.xaml nel progetto HelloActivity e scegliere Elimina.

  4. Fare clic con il pulsante destro del mouse sul progetto HelloActivity e scegliere Aggiungi, quindi Classe. Assegnare alla nuova classe il nome HelloActivity.cs.

  5. Nel file HelloActivity.cs aggiungere le seguenti istruzioni using.

    using System.Activities;
    using System.Activities.Statements;
    
  6. Assicurarsi che la nuova classe erediti dall'oggetto NativeActivity aggiungendo una classe base alla dichiarazione di classe.

    class HelloActivity : NativeActivity
    
  7. Aggiungere la funzionalità alla classe aggiungendo un metodo Execute.

    protected override void Execute(NativeActivityContext context)
    {
        Console.WriteLine("Hello World!");
    }
    
  8. Eseguire l'override del metodo CacheMetadata e chiamare il metodo Add appropriato per inviare al runtime del flusso di lavoro le informazioni sulle variabili, gli argomenti, gli elementi figlio e i delegati dell'attività personalizzata. Per altre informazioni, vedere la classe NativeActivityMetadata.

  9. Usare l'oggetto NativeActivityContext per pianificare un segnalibro. Per informazioni dettagliate sulla creazione, pianificazione e ripresa di un segnalibro, vedere Bookmarks.

    protected override void Execute(NativeActivityContext context)
        {
            // Create a Bookmark and wait for it to be resumed.
            context.CreateBookmark(BookmarkName.Get(context),
                new BookmarkCallback(OnResumeBookmark));
        }