2009-10-13 7 views
3

Selon la documentation NHibernate Validator ici:NHibernate Validator - passage gestionnaire de ressources et la clé

http://nhforge.org/wikis/validator/nhibernate-validator-1-0-0-documentation.aspx

je devrais être en mesure de transmettre mon gestionnaire de ressources pour que je puisse l'utiliser pour les messages d'erreur de validation. Voir:

Sinon, vous pouvez fournir un ResourceManager tout en vérifiant programmation des règles de validation ...

Et:

Si NHibernate validateur ne peut pas résoudre une clé de votre ResourceManager ni de ValidatorMessage , il revient aux valeurs prédéfinies par défaut.

Il montre même et par exemple de faire tout cela dans un attribut sur une propriété d'entité:

// a not null numeric string of 5 characters maximum 
    // if the string is longer, the message will 
    // be searched in the resource bundle at key 'long' 
    [Length(Max = 5, Message = "{long}")] 
    [Pattern(Regex = "[0-9]+")] 
    [NotNull] 
    public string Zip 
    { 

     get { return zip; } 
     set { zip = value; } 
    } 

Cependant, pour autant que je peux le voir ne précise pas comment vous passez le gestionnaire de ressources au cadre de validation - est-ce que quelqu'un sait comment faire cela?

Merci!

+0

http://stackoverflow.com/questions/1404309/nhibernate-validator-how-to-validate-custom-properties –

+0

@Jon, Merci, j'ai lu votre suggestion sur la question - C'est intéressant intéressant, et je ' Je vais y réfléchir. J'aimerais quand même savoir comment faire ça. – UpTheCreek

Répondre

1

Jetez un oeil à this post et répond à this SO question (il décrit quelques pièges dans l'utilisation de l'interpolateur de message).

J'espère que cela vous aidera.

+0

Merci c'est utile. Cependant, la documentation de NHV suggère qu'il est plus facile que d'avoir à écrire son propre interpolateur de message personnalisé: "Vous pouvez également fournir un ResourceManager en vérifiant par programmation les règles de validation ...", peut-être que les docs sont trompeurs? – UpTheCreek

+0

'DefaultMessageInterpolator' a la méthode' Initialize' qui accepte la culture et le couple de ResourceManagers - normal et fallback-back. Vous pouvez transformer votre 'ValidatorEngine.Interpolator' en' DefaultMessageInterpolator' et le réinitialiser. –

+0

Ah, je vois - merci! – UpTheCreek

Questions connexes