2009-10-13 3 views
3

Согласно документации NHibernate Validator здесь:NHibernate Validator - передача менеджера ресурсов и ключевых

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

я должен быть в состоянии передать мой менеджер ресурсов, так что я могу использовать это для сообщений об ошибках валидации. См:

В качестве альтернативы вы можете предоставить ResourceManager при проверке программно правила проверки ...

И:

Если NHibernate Validator не может разрешить ключ от вашего ResourceManager, ни от ValidatorMessage , он возвращается к встроенным значениям по умолчанию.

Он даже показывает и пример выполнения всего этого в атрибуте на свойства объекта:

// 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; } 
    } 

Однако, насколько я могу видеть его не определяет, как вы передаете менеджер ресурсов в рамки валидации - кто-нибудь знает, как это сделать?

Спасибо!

+0

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

+0

@Jon, Спасибо, я прочитал ваше предложение по этому вопросу - Интересно интересно, Приведем некоторые соображения. Я все равно хотел бы знать, как это сделать. – UpTheCreek

ответ

1

Посмотрите на this post и отвечает на this SO question (он описывает некоторые ошибки в использовании интерполятора сообщений).

Надеюсь, это вам поможет.

+0

Спасибо, что это полезно. Однако документация NHV говорит о том, что проще написать собственный пользовательский интерполятор сообщений: «В качестве альтернативы вы можете предоставить ResourceManager при программной проверке правил проверки ...», может быть, документы вводят в заблуждение? – UpTheCreek

+0

'DefaultMessageInterpolator' имеет метод' Initialize', который принимает культуру и пару ResourceManager - нормальный и откат. Вы можете использовать свой 'ValidatorEngine.Interpolator' для' DefaultMessageInterpolator' и повторно инициализировать его. –

+0

А, я вижу - спасибо! – UpTheCreek

Смежные вопросы