Partager via


Tâche 2 : utiliser l'activité personnalisée dans un workflow séquentiel

Dans cette tâche, vous ajoutez l'activité personnalisée WebTear que vous avez créée dans Tâche 1 : créer l'activité personnalisée à votre workflow séquentiel WebTearWorkflow.

Ce workflow utilise une propriété de type chaîne affectée par l'application hôte à la valeur URL et l'associe à la UrlProperty définie dans l'activité personnalisée WebTear. Lorsque l'activité WebTear est exécutée dans le workflow, l'activité télécharge le texte de l'URL demandée et déclenche un événement. Le workflow de cette tâche crée un gestionnaire d'événements pour cet événement afin de récupérer les données téléchargées par l'activité.

NoteRemarque :

Bien qu'il soit conseillé de suivre les exercices de façon linéaire, ce n'est pas requis. Vous pouvez démarrer cet exercice en ouvrant l'exemple de projet et en continuant avec les étapes de la section suivante.

Pour définir les propriétés du workflow séquentiel

  1. Dans la classe WebTearWorkflow, créez un champ String privé, nommé pageUrl et un champ private String, nommé pageData.

    private string pageUrl;
    private string pageData;
    
  2. Dans la classe WebTearWorkflow, créez un champ WebTearActivity privé, nommé webTearActivity.

    private WebTearActivity webTearActivity;
    
  3. Dans la classe WebTearWorkflow, créez une propriété String publique, nommée Url.

    Créez une méthode get qui renvoie la valeur du champ pageUrl et une méthode set qui définit la valeur du champ pageUrl.

    public string Url
    {
        get { return pageUrl; }
        set { pageUrl = value; }
    }
    
  4. Dans la classe WebTearWorkflow, créez une propriété String publique nommée Data.

    Créez une méthode get qui renvoie la valeur du champ pageData et une méthode set qui définit la valeur du champ pageData.

    public string Data
    {
        get { return pageData; }
        set { pageData = value; }
    }
    

Pour ajouter le WebTearActivity au workflow séquentiel

  1. Dans la méthode InitializeComponent de la classe WebTearWorkflow, créez une variable locale ActivityBind nommée activityBind1 et créez une nouvelle instance de cet objet.

    Note Remarque :

    Le code de cette étape doit être ajouté après le code qui affecte à la propriété CanModifyActivities la valeur true.

    ActivityBind activitybind1 = new ActivityBind();
    
  2. Dans la méthode InitializeComponent, créez une nouvelle instance de l'objet webTearActivity.

    this.webTearActivity = new WebTearActivity();
    
  3. Définissez la propriété Name de l'objet webTearActivity à la chaîne "webTearActivity".

    this.webTearActivity.Name = "webTearActivity";
    
  4. Affectez à la propriété Name de la propriété activityBind1 à la chaîne "WebTearWorkflow" et la propriété Path à la chaîne "url".

    activitybind1.Name = "WebTearWorkflow";
    activitybind1.Path = "Url";
    
  5. Ajoutez un gestionnaire d'événements pour l'événement PageFinished déclenché par l'objet webTearActivity nommé webTearActivity_PageFinished.

    Le délégué de cet événement est le délégué PageFinishedEventHandler .

    NoteRemarque :

    Cette étape est requise uniquement si vous créez une application C#. Le gestionnaire d'événements pour les applications Visual Basic est créé en utilisant le mot-clé Handles de l'étape 9.

    this.webTearActivity.PageFinished += 
        new WebTearActivity.PageFinishedEventHandler
        (this.webTearActivity_PageFinished);
    
  6. Appelez la méthode SetBinding définie dans la classe webTearActivity, en passant le nom de classe UrlProperty et l'objet activityBind1 comme paramètres à cette méthode.

    this.webTearActivity.SetBinding(WebTearActivity.UrlProperty, 
        ((ActivityBind)(activitybind1)));
    
  7. Ajoutez l'objet webTearActivity à la collection Activities du workflow en appelant la méthode Add définie dans la collection Activities.

    this.Activities.Add(this.webTearActivity);
    
  8. Créez une nouvelle méthode privée dans la classe WebTearWorkflow nommée webTearActivity_PageFinished qui accepte un paramètre Object nommé sender et un paramètre PageFinishedEventArgs nommé e.

  9. Dans la méthode webTearActivity_PageFinished, affectez au champ pageData du workflow la valeur de la propriété Data définie dans le paramètre PageFinishedEventArgs.

    private void webTearActivity_PageFinished(object sender, PageFinishedEventArgs e)
    {
        this.pageData = e.Data;
    }
    

Compilation du code

Pour plus d'informations sur la compilation de votre code, consultez Compilation du code.

Dans Tâche 3 : modifier l'application hôte d'activité personnalisée, vous permettez à l'application hôte de démarrer le workflow lorsqu'un bouton est activé.

Voir aussi

Tâches

Tâche 3 : modifier l'application hôte d'activité personnalisée

Autres ressources

Didacticiel : créer une activité personnalisée
Custom Activities

Footer image

Copyright ©2007 par Microsoft Corporation. Tous droits réservés.