2010-02-10 12 views
0

Actuellement, j'ai un ensemble de règles de validation EntLib définies dans mes classes. Les règles changeront plus tard en fonction du client.Scénarios de validation multiples pour le style EntLib - .resx?

Ce que je voudrais faire est de conserver mes classes, et simplement appeler les différents ensembles de règles définis quelque part pour le client spécifique. La fonctionnalité de cette fonctionnalité est similaire au stockage des valeurs d'internationalisation dans un fichier .resx, où le contenu change en fonction des paramètres de localisation, mais dans ce cas, les règles prédéfinies changent en fonction du client.

Merci.

Répondre

0

Pour ceux qui se demandent, compte tenu de la règle suivante pour un paramètre TerminalId:

<ValidatorComposition(CompositionType.And)> _ 
<NotNullValidator(MessageTemplate:="Terminal id is required.", Ruleset:="Default")> _ 
<StringLengthValidator(1, 19, MessageTemplate:="Terminal id must be between 1 and 19 digits in length.", Ruleset:="Default")> _ 
Public Property TerminalId() As String 
    Get 
     Return _TerminalId 
    End Get 
    Set(ByVal value As String) 
     _TerminalId = value 
    End Set 
End Property 

ajoutant simplement un identifiant de jeu de règles supplémentaires ferait l'affaire.

<StringLengthValidator(1, 19, MessageTemplate:="Terminal id must be between 1 and 19 digits in length.", Ruleset:="Client1.Default")> 
<StringLengthValidator(3, 10, MessageTemplate:="Terminal id must be between 3 and 10 digits in length.", Ruleset:="Client2.Default")> 
<StringLengthValidator(5, 25, MessageTemplate:="Terminal id must be between 5 and 25 digits in length.", Ruleset:="Client3.Default")> 

... puis d'appeler simplement l'ensemble de règles de validation approprié correspondant au client connecté.

Ah EntLib.

+0

BTW, peut être omis car il s'agit du type de composition implicite. –