Classe de base NativeActivity
NativeActivity est une classe abstraite avec un constructeur protégé. Comme l'objet CodeActivity, la classe NativeActivity sert à écrire le comportement impératif en implémentant une méthode Execute. Contrairement à l’objet CodeActivity, la classe NativeActivity a accès à toutes les fonctionnalités exposées de l’exécution du workflow, via l’objet NativeActivityContext passé à la méthode Execute.
Utilisation de NativeActivityContext
Les fonctionnalités de l'exécution du workflow sont accessibles à partir de la méthode Execute en utilisant les membres du paramètre context
, de type NativeActivityContext. Les fonctionnalités disponibles via NativeActivityContext sont notamment :
obtention et définition d’arguments et de variables ;
planification d'activités enfants à l'aide de la méthode ScheduleActivity ;
abandon de l'exécution de l'activité à l'aide de la méthode Abort ;
annulation de l'exécution de l'enfant à l'aide des méthodes CancelChild et CancelChildren ;
accès aux signets d'activité à l'aide de méthodes telles que CreateBookmark, RemoveBookmark et ResumeBookmark ;
Fonctionnalités de suivi personnalisées à l'aide de Track.
accès aux propriétés d'exécution et aux propriétés de valeur de l'activité à l'aide des méthodes GetProperty et GetValue ;
planification d'actions et de fonctions de l'activité à l'aide des méthodes ScheduleAction et ScheduleFunc.
Pour créer une activité personnalisée qui hérite de NativeActivity
OpenVisual Studio 2010.
Sélectionnez Fichier, Nouveau, puis Projet. Sélectionnez Workflow 4.0 sous Visual C# dans la fenêtre Types de projet, puis le nœud v2010. Sélectionnez Bibliothèque d’activités dans la fenêtre Modèles. Nommez le nouveau projet HelloActivity.
Cliquez avec le bouton droit sur Activity1.xaml dans le projet HelloActivity et sélectionnez Supprimer.
Cliquez avec le bouton droit sur le projet HelloActivity et sélectionnez Ajouter, puis Classe. Nommez la nouvelle classe HelloActivity.cs.
Dans le fichier HelloActivity.cs, ajoutez les directives
using
suivantes.using System.Activities; using System.Activities.Statements;
Faites en sorte que la nouvelle classe hérite de NativeActivity en ajoutant une classe de base à la déclaration de classe.
class HelloActivity : NativeActivity
Ajoutez des fonctionnalités à la classe en ajoutant une méthode Execute.
protected override void Execute(NativeActivityContext context) { Console.WriteLine("Hello World!"); }
Substituez la méthode CacheMetadata et appelez la méthode Add appropriée pour permettre au runtime du workflow de connaître les variables, les arguments, les enfants et les délégués de l'activité personnalisée. Pour plus d'informations, consultez la classe NativeActivityMetadata.
Utilisez l'objet NativeActivityContext pour planifier un signet. Pour plus d'informations sur la création, la planification et la reprise d'un signet, consultez 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)); }