2011-04-08 78 views
0

在我的单元测试中,我在调试时遇到错误。奇怪的是,只要我运行测试,我就不会得到这个(只有在调试测试时)。每当我尝试使用NHibernate Validator验证我的一个实体时,我会得到一个异常。以下行将引发下面的异常。Nhibernate验证器

InvalidValue[] invalidValues = validatorEngine.Validate(group); 

异常:未配置ProxyFactoryFactory。 使用其中一个可用的NHibernate.ByteCode提供程序初始化会话工厂配置部分的'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

回答

1

我没有使用过NHibernate的验证之前,但NHibernate的需要ProxyFactory里类被指定为其他明智的配置的一部分,它会引发这种错误

我通常使用XML映射文件和配置文件 这是我通常会添加 <property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>

任何代理工厂会做就行了。它归结为偏好。

+0

当你在上面的例子中使用NHV这样独立的NHibernate的。这就是为什么我对这个错误感到困惑。每当我构建会话工厂时,我的Fluent配置中都有指定的ProxyFactory类,但此单元测试不使用会话工厂。这也不能解释为什么它不会在调试时抛出相同的错误。 – 2011-04-08 03:59:03