Magazine Internet

[WF] Passer des arguments à une instance de workflow

Publié le 24 novembre 2009 par Jeremy.jeanson

Cela semble fou tellement la documentation est bien faite sur MSDN, mais j’ai lu il y a peu qu’il y avait encore de anglophobes qui cherchaient à passer des arguments lors de l’instanciation d’un Workflow.

Dans un premier temps il faut bien saisir que seul le runtime de workflow peut instancier un workflow. Il ne faut donc pas imaginer faire des surcharges du constructeur, c’est inutile. Par contre le runtime de workflow peut initialiser de propriétés d’un workflow via la méthode CreateWorkflow.

Voici donc la méthode à suivre:

Ajouter une propriété au workflow (celle-ci ferra office d’argument ou paramètre, chacun son vocabulaire). Dans l’exemple un boolean du nom de Test

Vb

Public NotInheritable Class Workflow1
    Inherits SequentialWorkflowActivity

    Private m_Test As Boolean
    Public Property Test() As Boolean
        Get
            Return m_Test
        End Get
        Set(ByVal value As Boolean)
            m_Test = value
        End Set
    End Property
End Class

C#

public sealed partial class Workflow1 : SequentialWorkflowActivity
{
    private Boolean m_Test;
    public Boolean Test
    {
        get
        {
            return m_Test;
        }
        set
        {
            m_Test = value;
        }
    }
}

Ensuite on passe les arguments au worflow via la méthode CreateWorkflow du runtime de workflow (workflowRuntime dans mon exemple).

Vb

Dim test As New Dictionary(Of String, Object)
test.Add("Test", True)

Dim workflowInstance As WorkflowInstance = workflowRuntime.CreateWorkflow( _
     GetType(Workflow1), _
     test)

C#

Dictionary<String, Object> test = new Dictionary<string, object>();
test.Add("Test", true);
                
WorkflowInstance instance = workflowRuntime.CreateWorkflow(
    typeof(_WorkflowConsoleApplication1.Workflow1),
    test);

Ensuite au sein du workflow il suffit d’utiliser la variable m_Test ;)

Voila, rien de bien compliqué!


Retour à La Une de Logo Paperblog

A propos de l’auteur


Jeremy.jeanson 1573 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Dossier Paperblog