우리는 Validators 프로젝트로 NHibernate와 Castle을 사용하여 프로젝트를 빌드하고 있습니다. 모든 최신 버전을 지원하기 위해 노력하고 있습니다. 오류없이 작동하는 응용 프로그램을 얻었으나 몇 가지 단원 테스트에서 예외가 발생합니다. 이 테스트는 데이터베이스에 실제로 접근하지 않고 매핑 된 엔티티 주변의 기능을 테스트하는 테스트입니다. 내가 거기에 구성 매핑이Nhibernate.Util은 구성 라인이 구성에 존재할 때 ProxyFactoryFactoryNotConfiguredException을 발생시킵니다.
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory name="Linx2">
<property
name="connection.driver_class">NHibernate.Driver.NpgsqlDriver</property>
<property name="dialect">Linx2.Common.Framework.PostgreSQL83Dialect,
Linx2.Common.Framework</property>
<property name="connection.connection_string">[Hidden so I don't get fired.]</property>
<property name="adonet.batch_size">10</property>
<property name="show_sql">false</property>
<property name="use_outer_join">true</property>
<property name="command_timeout">60</property>
<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
<property name="proxyfactory.factory_class">
NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle
</property>
<property name="connection.release_mode">after_transaction</property>
<mapping assembly="NHibernate.Collection.Observable" />
</session-factory>
</hibernate-configuration>
, 그리고 응용 프로그램에서 작동합니다
NHibernate.Bytecode.ProxyFactoryFactoryNotConfiguredException:
The ProxyFactoryFactory was not configured.
Initialize 'proxyfactory.factory_class' property of the session-factory
configuration section with one of the available NHibernate.ByteCode providers.
Example:
<property name='proxyfactory.factory_class'>
NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu
</property>
Example:
<property name='proxyfactory.factory_class'>
NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle
</property>
[Continues down stack trace...]
다음은 내 설정 파일입니다. 나는 또한 NHibernate.ByteCode dll을 포함하고있다. 그러나이 테스트에서는 무시됩니다. 개별 테스트에서 수동으로 구성을 시작하고 구성을 항목이있는 중반 테스트를 중단하고 확인했습니다. 그러나 IsInitialized 호출의 아래 코드에서 예외가 throw됩니다.
if (NHibernateUtil.IsInitialized(ChildAssociations))
{
ChildAssociations.ForEach(x => isValid = isValid && x.Element.IsValid(validatedObjects));
}
이전에는 2.2 용 NHibernate 빌드에서 문제없이 작동했습니다. 어떤 도움이라도 대단히 감사하겠습니다. 나는 지난 4 시간 동안 그것에 머리를 치고 있었다.