Я играю с NHibernate 3 alpha, но изо всех сил пытаюсь настроить SessionFactory.
У меня есть следующее:
var config = new Configuration().Configure();
_sessionFactory = config.BuildSessionFactory();
Однако в предоставленных dll с загрузкой 3 alpha нет предоставленных классов фабрики прокси. Т.е. NHibernate.ByteCode.Castle, NHibernate.ByteCode.LinFu и Spring, предоставленные с nHib 2.x, здесь не представлены.
Итак, в пакете 3 alpha я посмотрел на NHibernate.Example.Web и использовал предоставленный им NHibernate.ByteCode.LinFu; этот пример использует его в своем config.hbm.
Итак, мой hibernate.cfg.xml имеет
<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
С ошибкой во второй строке из-за вышеприведенного кода при создании Factory
NHibernate.Bytecode.UnableToLoadProxyFactoryFactoryException не был обработан кодом пользователя
Сообщение = невозможно загрузить тип 'NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu' во время настройки класса фабрики прокси.
Возможные причины:
- Сборка поставщика NHibernate.Bytecode не была развернута.
- TypeName, использованный для инициализации свойства 'proxyfactory.factory_class' раздела> session-factory, сформирован неправильно
Но ссылка LinFu установлена на CopyLocal, и углубляясь в трассировку стека, вы получаете:
в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1 (MessageRpc & rpc)
в System.ServiceModel.Dispatcher.MessageRpc.Process (логическое значение isOperationContextSet)
InnerException: System.IO.FileLoadException
Сообщение = Не удалось загрузить файл или сборку 'NHibernate, Версия = 3.0.0.1002, Культура = нейтральная, PublicKeyToken = null' или одна из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)
Источник = mscorlib
FileName = NHibernate, версия = 3.0.0.1002, культура = нейтральная, PublicKeyToken = ноль
FusionLog ==== Предварительно связать информацию о состоянии ===
LOG: DisplayName = NHibernate, версия = 3.0.0.1002, культура = нейтральная, PublicKeyToken = ноль
(Полностью указано)
LOG: Appbase = file: /// C: /Dev/SilverTracker/src/SilverTracker/SilverTracker.Web.Services/
LOG: Initial PrivatePath => C: \ Dev \ SilverTracker \ src \ SilverTracker \ SilverTracker.Web.Services \ bin
Вызывающая сборка: NHibernate.ByteCode.LinFu, версия = 3.0.0.1002, культура = нейтральная, PublicKeyToken = ноль.
И само внутреннее исполнение:
{"Не удалось загрузить файл или сборку" NHibernate, версия = 3.0.0.1002, Culture = нейтральный, PublicKeyToken = null 'или одна из его зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT : 0x80131040) ":" NHibernate, версия = 3.0.0.1002, культура = нейтральная, PublicKeyToken = null "}
Насколько я вижу, он нашел файл, но не совместим со сборкой nHib 3.
Итак, я в растерянности!
Конфиг изменился на 3? Я изо всех сил пытаюсь найти другие примеры, кроме тех, которые поставляются с 3 сборками.
Это служба .NET 4.0 WCF. Я знаю, что могу просто использовать 2.x, но я пробую новую любезность провайдера linq.
Заранее спасибо.