Подтвердить что ты не робот

Лето Nhibernate Сессия 01, почему я получаю NHibernate.Bytecode.ProxyFactoryFactoryNotConfiguredException?

Я совершенно новичок в NHibernate, следуя на screencast на www.summerofnhibernate.com, что является удивительным. К концу презентации предполагается пройти unit test, но для меня он говорит:

NHibernate.Bytecode.ProxyFactoryFactoryNotConfiguredException: The ProxyFactoryFactory was not configured.

Что я делаю неправильно?

4b9b3361

Ответ 1

Я уверен, вы используете NH 2.1, в то время как screencast использовал 2.0.

В 2.1 вы должны установить proxyfactory.factory_class в один из NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.LinFu.ProxyFactoryFactory или NHibernate.ByteCode.Spring.ProxyFactoryFactor

Ответ 2

Я спросил об этом, потому что мне потребовалось гораздо больше времени, чтобы найти ответ, чем хотелось бы. Если я приведу других новичков в заблуждение, пожалуйста, поправьте меня.

По-видимому, с момента создания screencast, NHibernate теперь требует указать ProxyFactoryFactory, который я еще не знаю, что это такое, и если вы ищете это, вы, вероятно, тоже этого не сделаете.

Добавьте это в свой hibernate.cfg.xml:

<property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>

Также добавьте эти файлы в папку lib\NHibernate

NHibernate.ByteCode.Castle.dll

Castle.Core.dll
Castle.Core.xml
Castle.DynamicProxy2.dll
Castle.DynamicProxy2.xml

И добавьте ссылку на NHibernate.ByteCode.Castle.dll в проект DataAccessLayerTest

Я могу уйти, но через пару часов копания я могу перейти к следующему скринкасту, и я надеюсь, что ты тоже.

Ответ 3

Это был очень полезный ответ. Я загрузил последнюю версию NHibernate (2.1.1.GA) с выпуском Gallio MBUnit (3.1.0.0), но начал сталкиваться с проблемами, когда пришло время запуска тестов. Добавление четырех файлов, предложенных mlusby, а дополнительная строка в файле hibernate.cfg.xml решила мою проблему. Это было единственное рабочее решение, которое я нашел в Интернете. Благодарю!