У меня есть приложение ASP.NET MVC, которое использует Spring.NET 1.2 для внедрения зависимостей и NHibernate 2.1 для ORM.Он работал на MVC 3, используя S # arp Architecture в слегка измененной версии, которую мы сами собирали, и от которой я сейчас пытаюсь избавиться.(Т.е. я собираюсь начать использовать ссылочные SharpArch .dll вместо чистого исходного кода.)
Инициализация Spring выполняется с помощью советов, взятых из здесь , а также с использованием SpringServiceLocatorAdapter, найденного здесь .NH инициализируется с помощью NHibernateSession.Init от SharpArch, который задается нашими двумя путями сборки.Сопоставление выполняется с файлами XML HBM.
Решение перейти на NH 3 привело к серьезному случаю DLL Hell, из-за которого мне, конечно, пришлось обновить FluentNH, NH Validator, SharpArch, Spring иВиндзорский замокЧтобы все заработало, потребовалось много ручного труда, изменение ссылок и незначительные исправления кода.Все это было ожидаемо.
Теперь у меня достаточно хорошо работает программное обеспечение, поэтому Spring инициализируется и DI работает правильно.Но когда репозиторий пытается использовать свой объект Session, я получаю следующую ошибку.
Ошибка создания объекта с именем '': не определены службы типа 'SharpArch.NHibernate.ISessionFactoryKeyProvider'
Я пытался выяснить причину этогодля лучшей части дня сейчас.Мне кажется, что SpringServiceLocatorAdapter устарел, но я не могу найти информацию об этом.Кроме того, простое исключение его использования приводит к тому, что Sessions в репозиториях имеют значение null и, следовательно, NullReferenceExceptions.Но, насколько я знаю, проблема также может быть в том, как инициализируется NH.
Надеюсь, кто-то может указать мне правильное направление.У меня трудные времена, так как я не тот, кто настраивал систему с самого начала, и списки критических изменений для обновлений версий трудно найти.
Спасибо большое!Я, конечно, предоставлю больше информации, если это необходимо.