Activité de stratégie externalisée dans .NET Framework 4
Cette rubrique s'applique à Windows Workflow Foundation 4.
Cet exemple montre comment l'activité ExternalizedPolicy4 permet que des objets RuleSet existants de .NET Framework version 3.5 Windows Workflow Foundation (WF 3.5) soient exécutés dans .NET Framework version 4 Windows Workflow Foundation (WF 4) directement à l'aide du moteur de règles fourni dans WF 3.5. À l'aide de cette activité, vous pouvez ouvrir et exécuter n'importe quel RuleSet WF 3.5 existant. Pour plus d'informations sur le sujet suivant le moteur de règles WF 3.5 inclus dans Windows Workflow Foundation, consultez Présentation du moteur de règles Windows Workflow Foundation. Pour plus d'informations sur le sujet suivant la migration de règles vers WF dans .NET Framework 4, consultez les conseils de migration fournis dans Conseils de migration.
Projets dans cet exemple
Nom du projet |
Description |
Fichiers principaux |
ExternalizedPolicy4 |
Contient l'activité ExternalizedPolicy4 et son concepteur WF 4. |
ExternalizedPolicy4.cs : définition de l'activité. ExternalizedPolicy4Designer.xaml : concepteur personnalisé pour l'activité ExternalizedPolicy4. Il utilise l'éditeur de Règles (RuleSetDialog) du moteur de règles WF 3.5. |
ImperativeCodeClientSample |
Exemple d'application cliente qui configure et exécute un workflow à l'aide d'une application ExternalizedPolicy4 utilisant du code C# impératif (aucun concepteur utilisé). |
ApplyDiscount.rules : fichier avec les définitions de règles WF. Order.cs : type qui représente une commande client. Les règles sont appliquées aux objets de ce type. Program.cs : configure et exécute un workflow qui a une activité Policy4 pour appliquer les règles définies dans ApplyDiscount.rules aux instances d'objets Order. App.config : fichier de configuration avec le chemin d'accès du fichier de règles. |
DesignerClientSample |
Exemple d'application cliente qui configure et exécute un workflow à l'aide d'une application ExternalPolicy4 dans le concepteur WF. |
Sequence1.xaml : workflow séquentiel qui utilise une activité Policy4 pour effectuer des évaluations de règle. Program.cs : exécute une instance du workflow définie dans Sequence1.xaml. |
Activité ExternalizedPolicy4
L'activité ExternalizedPolicy4 est un NativeActivity qui permet l'exécution d'objets RuleSet WF 3.5 dans des workflows WF 4.0. L'exemple suivant est une définition simplifiée du modèle d'objet public de l'activité.
public class ExternalizedPolicy4Activity<TResult>: CodeActivity
{
public string RulesFilePath
public string RuleSetName
[RequiredArgument]
public InArgument<T> TargetObject
[RequiredArgument]
public OutArgument<T> ResultObject
public OutArgument<ValidationErrorCollection> ValidationErrors
}
Propriété |
Description |
RuleSetFilePath |
Chemin d'accès au fichier RuleSet de .NET Framework 3.5 à évaluer lorsque l'activité est exécutée. |
RuleSetName |
Nom du RuleSet à utiliser dans le fichier .rules. |
TargetObject |
Objet sur lequel les objets Rule de RuleSet sont évalués. |
ResultObject |
Objet qui en résulte une fois les règles appliquées (par exemple, les règles sont appliquées sur l'argument Input et le résultat est stocké dans l'argument Result). |
ValidationError |
Liste des erreurs de validation retournées par le moteur de règles WF 3.5 lors de la validation de RuleSet sur l'objet cible avant l'exécution. |
Concepteur de l'activité ExternalizedPolicy4
Le concepteur d'ExternalizedPolicy4 vous permet de configurer une activité pour utiliser un ensemble de règles (RuleSet) existant sans écrire de code. Définissez simplement le chemin d'accès de l'emplacement où se trouve le fichier .rules et spécifiez le nom du RuleSet que vous voulez utiliser. Il vous permet également de modifier RuleSet. Après avoir généré la solution, il se trouve dans la boîte à outils, dans la section Microsoft.Samples.Activities.Rules. Le concepteur vous permet de sélectionner un fichier .rules et un RuleSet. Lorsque l'utilisateur clique sur le bouton Modifier le RuleSet, RuleSetDialog WF 3.5 s'affiche. Cette boîte de dialogue, qui est l'éditeur de règles WF 3.5 réhébergé, est utilisée pour afficher et modifier les règles que l'activité ExternalizedPolicy4 exécute.
Policy4 et ExternalPolicy4
L'activité Activité de stratégie dans .NET Framework 4 vous permet de créer et d'exécuter un ensemble de règles (RuleSet) .NET Framework 3.5 dans un workflow WF 4. RuleSet est sérialisé inline dans la définition XAML de l'activité Policy4. L'exemple ExternalizedPolicy4 montre comment utiliser un RuleSet externe existant (contenu dans un fichier .rules).
Utilisation de cet exemple
Aucune configuration particulière n'est requise pour exécuter cet exemple. Ouvrez la solution dans Visual Studio 2010 et appuyez sur F5 pour exécuter l'application.
Cet exemple contient deux applications clientes : ImperativeCodeClientSample et DesignerClientSample. Le client ImperativeCodeClientSample montre comment configurer et exécuter l'activité ExternalizedPolicy4 à l'aide de code C# impératif. DesignerClientSample montre comment configurer et exécuter l'activité ExternalizedPolicy4 à l'aide du concepteur.
Pour exécuter l'application ImperativeCodeClientSample
À l'aide de Visual Studio 2010, ouvrez le fichier solution Policy4sample.sln.
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet ImperativeCodeClientSample, puis sélectionnez Définir comme projet de démarrage.
Pour exécuter le projet, appuyez sur CTRL+F5.
Pour exécuter l'application DesignerClientSample
À l'aide de Visual Studio 2010, ouvrez le fichier solution Policy4sample.sln.
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet DesignerClientSample, puis sélectionnez Définir comme projet de démarrage.
Appuyez sur F6 pour compiler le projet.
Appuyez sur CTRL+F5 pour exécuter le projet.
Remarque : |
---|
Les exemples peuvent déjà être installés sur votre ordinateur. Recherchez le répertoire (par défaut) suivant avant de continuer.
<LecteurInstall>:\WF_WCF_Samples
Si ce répertoire n'existe pas, rendez-vous sur la page (éventuellement en anglais) des exemples Windows Communication Foundation (WCF) et Windows Workflow Foundation (WF) pour .NET Framework 4 pour télécharger tous les exemples Windows Communication Foundation (WCF) et WF. Cet exemple se trouve dans le répertoire suivant.
<LecteurInstall>:\WF_WCF_Samples\WF\Scenario\ActivityLibrary\ExternalizedPolicy4
|