Partager via


Procédure : créer un modèle d'activité personnalisé

Cette rubrique s'applique à Windows Workflow Foundation 4.

Les modèles d'activité personnalisés sont utilisés pour personnaliser la configuration des activités, parmi lesquelles les activités composites personnalisées, afin que les utilisateurs n'aient pas besoin de créer individuellement chaque activité et de configurer manuellement leurs propriétés et les autres paramètres. Ces modèles personnalisés peuvent être rendus disponibles dans la Boîte à outils sur le Windows Workflow Designer ou dans un concepteur réhébergé, à partir de laquelle les utilisateurs peuvent les faire glisser jusqu'à l'aire de conception préconfigurée. Le Concepteur de workflow est fourni avec de bons exemples de ces modèles : le SendAndReceiveReply Template Designer et le ReceiveAndSendReply Template Designer dans la catégorie Messaging Activity Designers

La première procédure dans cette rubrique explique comment créer un modèle d'activité personnalisé pour une activité Delay, et la deuxième procédure explique brièvement comment le rendre disponible dans un Concepteur de workflow pour vérifier que le modèle personnalisé fonctionne.

Les modèles d'activité personnalisés doivent implémenter l'IActivityTemplateFactory. L'interface dispose d'une seule méthode Create avec laquelle vous pouvez créer et configurer les instances d'activité utilisées dans le modèle.

Pour créer un modèle pour l'activité Delay

  1. Démarrez Visual Studio 2010.

  2. Dans le menu Fichier, pointez sur Nouveau, puis sélectionnez Projet.

    La boîte de dialogue Nouveau projet s'affiche.

  3. Dans le volet Types de projet, sélectionnez Workflow dans les projets Visual C# ou les regroupements Visual Basic, en fonction du langage choisi.

  4. Dans le volet Modèles, sélectionnez Bibliothèque d'activités.

  5. Dans la zone Nom, entrez DelayActivityTemplate.

  6. Acceptez les valeurs par défaut dans les zones de texte Emplacement et Nom de la solution, puis cliquez sur OK.

  7. Cliquez avec le bouton droit sur le répertoire References du projet DelayActivityTemplate dans l'Explorateur de solutions, puis choisissez Ajouter une référence pour ouvrir la boîte de dialogue Ajouter une référence.

  8. Accédez à l'onglet .NET, sélectionnez PresentationFramework dans la colonne Nom du composant située à la gauche, puis cliquez sur OK pour ajouter une référence au fichier PresentationFramework.dll.

  9. Répétez cette procédure pour ajouter des références aux fichiers System.Activities.Presentation.dll et WindowsBase.dll.

  10. Cliquez avec le bouton droit sur le projet DelayActivityTemplate dans l'Explorateur de solutions et choisissez Ajouter, puis Nouvel élément pour ouvrir la boîte de dialogue Ajouter un nouvel élément.

  11. Sélectionnez le modèle Classe, nommez-le MyDelayTemplate, puis cliquez sur OK.

  12. Ouvrez le fichier MyDelayTemplate.cs et ajoutez les instructions suivantes.

    //Namespaces added
    using System.Activities;
    using System.Activities.Statements;
    using System.Activities.Presentation;
    using System.Windows;
    
  13. Implémentez IActivityTemplateFactory avec la classe MyDelayActivity dans le code suivant. Cela configure une durée de 10 secondes comme délai.

        public sealed class MyDelayActivity : IActivityTemplateFactory
        {
            public Activity Create(System.Windows.DependencyObject target)
            {
                return new System.Activities.Statements.Delay
                {
                    DisplayName = "DelayActivityTemplate",
                    Duration = new TimeSpan(0, 0, 10)
    
                };
            }
        }
    
  14. Sélectionnez Générer la solution dans le menu Générer pour générer le fichier DelayActivityTemplate.dll.

Pour rendre le modèle disponible dans un concepteur de workflow

  1. Cliquez avec le bouton droit sur la solution DelayActivityTemplate dans l'Explorateur de solutions et choisissez Ajouter, puis Nouvel projet pour ouvrir la boîte de dialogue Ajouter un nouveau projet.

  2. Sélectionnez le modèle Application console de workflow, nommez-le CustomActivityTemplateApp, puis cliquez sur OK.

  3. Cliquez avec le bouton droit sur le répertoire References du projet CustomActivityTemplateApp dans l'Explorateur de solutions, puis choisissez Ajouter une référence pour ouvrir la boîte de dialogue Ajouter une référence.

  4. Accédez à l'onglet Projets, sélectionnez DelayActivityTemplate dans la colonne Nom du projet située à gauche, puis cliquez sur OK pour ajouter une référence au fichier DelayActivityTemplate.dll que vous avez créé dans la première procédure.

  5. Cliquez avec le bouton droit sur le projet CustomActivityTemplateApp dans l'Explorateur de solutions, puis choisissez Générer pour compiler l'application.

  6. Cliquez avec le bouton droit sur le projet CustomActivityTemplateApp dans l'Explorateur de solutions, puis choisissez Définir comme projet de démarrage.

  7. Sélectionnez Exécuter sans débogage dans le menu Déboguer, puis appuyez sur n'importe quelle touche pour continuer lorsque vous y êtes invité dans la fenêtre cmd.exe.

  8. Ouvrez le fichier Workflow1.xaml, puis ouvrez la Boîte à outils.

  9. Recherchez le modèle MyDelayActivity dans la catégorie DelayActivityTemplate. Faites-le glisser vers l'aire de conception. Vérifiez, dans la fenêtre Propriétés, que la valeur définie pour la propriété Duration est de 10 secondes.

Exemple

Le fichier MyDelayActivity.cs doit contenir le code suivant.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

//Namespaces added
using System.Activities;
using System.Activities.Statements;
using System.Activities.Presentation;
using System.Windows;

namespace DelayActivityTemplate
{
    public sealed class MyDelayActivity : IActivityTemplateFactory
    {
        public Activity Create(System.Windows.DependencyObject target)
        {
            return new System.Activities.Statements.Delay
            {
                DisplayName = "DelayActivityTemplate",
                Duration = new TimeSpan(0, 0, 10)

            };
        }
    }
}

Voir aussi

Référence

IActivityTemplateFactory

Autres ressources

Personnalisation de l'expérience de conception de workflow