如果配置了ValidatorMode.UseExternal,ValidatorEngine.Validate将返回null(无错误)

时间:2010-06-16 10:48:41

标签: validation nhibernate-validator

我正在将nhibernate验证器集成到我的应用程序中,并且所有属性都很好 但是只要我创建* .nhv.xml文件并在那里移动我的验证规则(作为嵌入式资源)     

ValidatorEngine.Validate(entity)
返回错误(实际上没有,我的InvalidValue[]集合为空

我适合任何评论/建议

1 个答案:

答案 0 :(得分:2)

问题是因为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);