ValidatorEngine.Validate возвращает ноль (без ошибок), если настроено его ValidatorMode.UseExternal - PullRequest
1 голос
/ 16 июня 2010

Я интегрирую валидатор nhibernate в свое приложение, и все в порядке с атрибутами но как только я создаю * .nhv.xml файлы и перемещаю туда свои правила проверки (как встроенный ресурс)

ValidatorEngine.Validate(entity)
возвращает неправильно (на самом деле ничего, и моя InvalidValue[] коллекция пуста

Я присваиваю любой комментарий / совет

1 Ответ

2 голосов
/ 20 июня 2010

Проблема была из-за конфигурационной части валидатора nhibernate
Сначала

NHibernateSharedEngineProvider
должен быть назначен
NHibernate.Validator.Cfg.Environment.SharedEngineProvider
тогда мы должны назвать текущий двигатель
Configure
не новым экземпляром из ValidatorEngine
поэтому полный раздел конфигурации может выглядеть так:

           var provider = new NHibernateSharedEngineProvider();
           NHibernate.Validator.Cfg.Environment.SharedEngineProvider = provider;</p>

       var nhvConfiguration = new FluentConfiguration();
       nhvConfiguration
              .SetDefaultValidatorMode(ValidatorMode.UseExternal)
              .Register(Assembly.Load("assembley name")
                  .ValidationDefinitions())
              .IntegrateWithNHibernate
                      .ApplyingDDLConstraints()
                      .And
                      .RegisteringListeners();

        var validatorEngine = NHibernate.Validator.Cfg.Environment.SharedEngineProvider.GetEngine();
        validatorEngine.Configure(nhvConfiguration);
...