Мы строим проект с использованием NHibernate и Castle с проектом Validators.Я пытаюсь обновить его до последней поддерживаемой версии между всеми этими.Приложение работает без ошибок, но в некоторых из моих модульных тестов я получаю исключение ниже.Это тесты, которые на самом деле не затрагивают базу данных, но тестируют функциональность вокруг сопоставленных объектов.
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...]
Ниже приведен мой файл конфигурации:
<?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 DLL.Однако в этих тестах это игнорируется.Я попытался вручную запустить конфигурацию в отдельном тесте и даже остановился и подтвердил в середине теста, что в конфигурации есть элемент.Тем не менее, исключение выдается в коде ниже при вызове IsInitialized.
if (NHibernateUtil.IsInitialized(ChildAssociations))
{
ChildAssociations.ForEach(x => isValid = isValid && x.Element.IsValid(validatedObjects));
}
Это работало ранее без проблем в сборке NHibernate для 2.2.Любая помощь будет принята с благодарностью.Я бьюсь головой об этом последние 4 часа.