2011-04-08 79 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