ValidatorEngine.Validate возвращает ноль (без ошибок), если настроено его ValidatorMode.UseExternal
Я интегрирую валидатор nhibernate в свое приложение, и все нормально с атрибутами, но как только я создаю *.nhv.xml файлы и перемещаю туда свои правила проверки (как встроенный ресурс)
ValidatorEngine.Validate(entity)
возвращает неправильно (на самом деле ничего и мой InvalidValue[]
коллекция пустаЯ присваиваю любой комментарий / совет
1 ответ
Проблема была из-за части конфигурации валидатора nhibernate
первый
NHibernateSharedEngineProvider
должен быть назначен на NHibernate.Validator.Cfg.Environment.SharedEngineProvider
тогда мы должны назвать текущий двигатель Configure
не новый экземпляр ValidatorEngine
поэтому полный раздел конфигурации может выглядеть так:
var provider = new NHibernateSharedEngineProvider();
NHibernate.Validator.Cfg.Environment.SharedEngineProvider = provider;
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);