Spring.NET с MVC3 (бритва) - PullRequest
       34

Spring.NET с MVC3 (бритва)

3 голосов
/ 31 марта 2011

Я экспериментирую с ASP.NET MVC3 Razor , и я впечатлен. Это путь, по которому мы пойдем.

Мы используем Spring.NET для внедрения зависимостей в нашем фреймворке, и мне интересно, возможно ли использовать его и для MVC3 проектов?

Документация Spring.NET говорит только о MVC2 , но я предполагаю, что в следующем выпуске будет поддержка MVC3 . Тем не менее, я пытался заставить его работать, хотя. Пока безуспешно.

Итак, мой вопрос: если кто-то еще нашел способ, обходной путь или трюк для внедрения зависимости в MVC3 с использованием Spring.NET и если да, то как?

Я знаю, что это очень общий вопрос, но даже честное «извините, это точно невозможно» или «оно должно работать без каких-либо модификаций» мне очень помогло бы.

Заранее спасибо, Jan

Ответы [ 2 ]

7 голосов
/ 01 апреля 2011

Да, хотя последний выпуск Spring.NET (1.3.1) имеет явную поддержку MVC2, его также (довольно легко) можно использовать для поддержки MVC3. Интерфейс IDependencyResolver, представленный в MVC3, делает интеграцию IoC значительно более простой, чем это было в прошлом (предлагая всего одну точку перехвата / подключения для разрешения типов, где ранее было несколько мест, необходимых для перехвата вызовов разрешения типов).

См. Подобные сообщения в блоге: http://blog.alexkyprianou.com/2011/03/07/using-spring-net-with-mvc-3/ для получения дополнительной информации и предложений о том, как вы можете это сделать (это действительно довольно просто по сравнению с усилием / сложностью сделать это с MVC1 и MVC2.

2 голосов
/ 01 апреля 2011

Должно работать без изменений.

После еще нескольких исследований и помощи коллег я обнаружил, что Spring.NET работает с MVC3 - по крайней мере, насколько я могу видеть это сейчас. Моей первоначальной проблемой был неправильно отформатированный xml-файл для моих объектов инъекции (я не опубликовал код в вопросе).

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

Я попытался добавить общеизвестный атрибут singleton="false", и он как-то работал, поэтому мои объекты теперь будут создаваться при каждом запросе. Хорошо!

Однако я обнаружил, что В примере Spring.NET Spring.MvcQuickStart.2010 также используется атрибут singleton со значением false, так что, вероятно, это правильный путь (и true по по умолчанию).

Я пока не знаю, как работать с областью session, но по крайней мере мое веб-приложение работает для запросов (singleton="false") и всего приложения (без атрибута singleton) с Spring.NET и MVC3 .

Лучший, Jan

...