Types de contraintes
Cette rubrique s'applique à Windows Workflow Foundation 4.
Cet exemple illustre deux façons différentes d'appliquer des contraintes à un workflow, une à partir de l'intérieur de l'activité (génération) et l'autre à partir de l'extérieur de l'activité (stratégie). Dans ce scénario, un auteur d'activité (d'un éditeur de logiciels tiers) souhaite valider la relation entre deux arguments. Dans ce cas, le coût doit être inférieur ou égal au prix. Il s'agit d'une contrainte de génération de validation générale.
Un propriétaire de magasin souhaite ensuite ajouter une validation à cette activité générique. Dans son cas, il souhaite que le prix de la majorité de ses produits soit égal ou inférieur à 9,99 $. Il utilise ainsi une contrainte de stratégie qui est au-dessus de l'activité CreateProduct
.
Dans l'exemple :
L'auteur d'activité (génération) doit :
Créer une contrainte (
PriceGreaterThanCost
). Il s'agit de l'emplacement de toute la logique de validation.Substituer OnGetConstraints et ajouter la contrainte (
PriceGreaterThanCost
) aux contraintes IList.
L'auteur de workflow (stratégie) doit effectuer les opérations suivantes :
Créer un workflow avec une instance de l'activité à valider (
CreateProduct
).Créer une contrainte (
MaxPrice
).Créer une instance ValidatorSettings (
validatorSettings
) et ajouter la contrainte (MaxPrice
) à la collectionAdditionalConstraints
. Ici, l'auteur de workflow peut ajouter des contraintes de stratégie à toute activité, telle qu'une séquence ou un parallèle.Appeler Validate, qui retourne une collection ValidationResults d'objets ConstraintViolation.
(Facultatif) Imprimer les objets ConstraintViolation.
Pour configurer, générer et exécuter l'exemple
Ouvrez l'exemple de solution ConstraintTypes.sln dans Visual Studio 2010.
Générez et exécutez la solution.
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\Validation\ConstraintLibrary
|