我正在将 nhibernate 验证器集成到我的应用程序中,并且属性的一切都很好,但是一旦我创建 *.nhv.xml 文件并将我的验证规则移到那里(作为嵌入式资源)
ValidatorEngine.Validate(entity)
返回错误(实际上什么都没有,我的InvalidValue[]
收藏是空的
我适合任何评论/建议
我正在将 nhibernate 验证器集成到我的应用程序中,并且属性的一切都很好,但是一旦我创建 *.nhv.xml 文件并将我的验证规则移到那里(作为嵌入式资源)
ValidatorEngine.Validate(entity)
返回错误(实际上什么都没有,我的InvalidValue[]
收藏是空的
我适合任何评论/建议
问题是因为 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);