Partager via


Exécution de RuleSets par programme

En plus d'exécuter des RuleSets à l'aide de l'activité PolicyActivity, vous pouvez exécuter et évaluer par programme des règles dans un RuleSet. Par exemple, supposons que vous souhaitiez exécuter un RuleSet pour une activité (un workflow ou tout autre type d'activité) à partir du code d'activité. Le code suivant montre comment procéder :

RuleValidation validation = new RuleValidation(typeof(customActivity),
null);

// "this" in the call below refers to the activity instance.
RuleExecution execution = new RuleExecution(validation, this);
customRuleSet.Execute(execution); 

En général, lorsque vous utilisez des règles dans un workflow, vous devez passer également le ActivityExecutionContext lors de la construction de l'instance RuleExecution. L'avantage principal de fournir le contexte est que vous pouvez envoyer des informations sur l'exécution de la règle au fournisseur de suivi de l'hôte.

Vous pouvez également exécuter directement des objets RuleSet à l'aide de l'objet RuleEngine. Le code suivant montre la procédure à suivre.

RuleValidation validation = new RuleValidation(typeof(customActivity),
null);

// "this" in the call below refers to the activity instance.
RuleEngine engine = new RuleEngine(customRuleSet, validation);
engine.Execute(this);

Notez que si vous souhaitez simplement valider un ensemble de règles pour un type donné (par exemple, si elles doivent contenir tous les membres référencés dans les règles), vous pouvez l'exprimer comme suit :

bool result = myRuleSet.Validate(validation);

Le résultat de l'appel de méthode Validate est true si le RuleSet est valide. L'instance RuleValidation a une propriété Errors avec les erreurs de validation.

NoteRemarque :

Vous pouvez également utiliser les RuleSets à l'extérieur d'un workflow. Le RuleSet pourrait être écrit dans tout type de .NET Framework.

Voir aussi

Référence

RuleSet
Validate
RuleValidation
RuleExecution
ActivityExecutionContext
PolicyActivity

Concepts

Utilisation de conditions dans les workflows

Footer image

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