在我的单元测试中,我在调试时遇到错误。奇怪的是,每当我运行测试时,我都不会得到这个(只有在调试测试时)。每当我尝试用NHibernate Validator验证我的一个实体时,我都会遇到异常。以下行抛出以下异常。
InvalidValue[] invalidValues = validatorEngine.Validate(group);
异常:未配置ProxyFactoryFactory。 使用一个可用的NHibernate.ByteCode提供程序初始化session-factory配置节的'proxyfactory.factory_class'属性。 例: NHibernate.ByteCode.LinFu.ProxyFactoryFactory,NHibernate.ByteCode.LinFu 例: NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode.Castle
我正在配置验证器引擎,如下所示:
var nhvConfiguration = new FluentConfiguration();
nhvConfiguration
.SetDefaultValidatorMode(ValidatorMode.OverrideAttributeWithExternal)
.Register(Assembly.Load("Business.Objects")
.ValidationDefinitions());
validatorEngine = new ValidatorEngine();
validatorEngine.Configure(nhvConfiguration);
我不确定这里发生了什么。任何人都知道为什么我在调试时遇到此错误而不是在运行测试时?
我正在使用NHibernate 3.1和NHibernate验证器1.3
答案 0 :(得分:1)
之前我没有使用过nhibernate验证器,但是nHibernate需要将一个ProxyFactory类指定为配置的一部分,否则它会抛出这种错误
我通常使用xml映射文件和配置文件
这是我通常会添加的行
<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
任何代理工厂都可以。归结为偏好。
答案 1 :(得分:0)
抛出此异常的原因与任何nhibernate配置无关。以下文章解释了为什么我得到这个例外。