2010-09-17 15 views
2

Est-il possible de créer des workflows dynamiquement? J'ai besoin de générer un WF dynamiquement basé sur un ensemble de logique métier et la séquence d'exécution du service que je reçois en entrée du système. Est-il possible pour moi de générer dynamiquement le workflow.xaml sans utiliser le concepteur de wf et de l'exécuter dans le cloud?Est-il possible de créer un WorkFlow (dans Workflow-foundation -4) dynamiquement?

Répondre

4

Oui - vous pouvez créer un fichier xaml à l'aide de simples routines d'E/S de fichiers ou de bibliothèques de manipulation XML, mais la meilleure solution serait d'utiliser la classe XamlXmlWriter.

Une fois que le flux de travail XAML est prêt, vous pouvez l'exécuter en utilisant (comme aperçus dans this article)

WorkflowInstance instance = runtime.CreateWorkflow(
     XmlTextReader.Create("..\\..\\WorkflowInXML.xml")); 
instance.Start(); 

Vous pouvez également charger des activités de XAML dans WF4 - vérifier article pour la même.

+0

Merci beaucoup. Ceci est très utile pour mon travail. – Paba

+0

L'exemple de code et l'article MSDN portent sur WF3 et n'ont aucun lien avec le flux de travail 4. ActivityXamlServices est le chemin à parcourir dans WF4. – Maurice

+0

@Maurice - oui, l'article est daté mais la méthode (CreateWorkflow) existe toujours et est pertinente - c'est pourquoi je l'ai cité. Il est à noter que ActivityXamlServices permet de charger uniquement l'arborescence des activités et non le workflow. – VinayC