Question

Actuellement, j'ai un ensemble de règles de validation EntLib définies dans mes classes. Les règles plus tard changer en fonction du client.

Ce que je voudrais faire est de conserver mes cours, et il suffit d'appeler les différents ensembles de règles définies quelque part pour le client spécifique.

La fonctionnalité de ce qui est similaire à stocker des valeurs d'internationalisation dans un fichier .resx, où les changements de contenu en fonction des paramètres de localisation, mais dans ce cas, les règles prédéfinies changeraient en fonction du client.

Merci.

Était-ce utile?

La solution

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

Il suffit d'ajouter 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 en appelant simplement l'ensemble de règles de validation appropriée qui correspond au client connecté.

Ah EntLib.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top