Ninject с MVC3 RTM - PullRequest
       21

Ninject с MVC3 RTM

2 голосов
/ 24 января 2011

Я обновил MVC3 с RC2 до RTM. Мы использовали Ninject 2.1.0.76, но когда я обновился, все перестало работать. Поэтому я использовал менеджер NuGet, чтобы получить последние библиотеки Ninject, Ninject.MVC3 и Ninject.Web.Mvc (2.1.0.91, 1.0.0.0 и 2.1.0.39 соответственно). Теперь он создает файл AppStart_NinjectMVC3.

Я удалил NinjectHttpApplication из своего global.asax и превратил его в обычное HttpApplication. Когда я пытался построить, я получаю;

"Исключение было сгенерировано целью вызова"

Смотря дальше, если я отключу следующую строку;

DependencyResolver.SetResolver (новый NinjectServiceLocator (kernel));

Сборка проходит. Но я уверен, что не хочу этого делать.

Есть идеи?

----- ОБНОВЛЕНИЕ ---------

Я создал новый проект MVC3, добавил ссылку на Ninject.MVC3, и он прекрасно работает и работает. Я сравнил web.config, не вижу различий, связанных с Ninject или MVC, в двух. Новый проект не добавляет библиотеку Ninject.Web.Mvc, поэтому я удалил ее и закомментировал весь код, относящийся к этому, и все же ошибка возникает.

Ответы [ 2 ]

1 голос
/ 24 января 2011

Скачать dll отсюда

https://github.com/ninject/ninject/archives/master

https://github.com/ninject/ninject.web.mvc/archives/master

Далее больше не используйте Ninject.MVC3, все что вам нужно, это Ninject.Web.Mvc

У меня также есть статья, документирующая то же самое здесь

1 голос
/ 24 января 2011

Начиная с ASP.NET MVC 3 Beta интерфейс IServiceLocator заменяется на IDependencyResolver.Я не уверен, что у Ninject.MVC3 уже есть релиз, в котором они реализовали этот интерфейс.

Судя по строке DependencyResolver.SetResolver(new NinjectServiceLocator(kernel)), похоже, что их нет.* простая реализация этого интерфейса для Ninject.

ОБНОВЛЕНИЕ : библиотека Ninject.Web.Mvc имеет класс NinjectDependencyResolver, который выходит из интерфейса IDependencyResolver.Я думаю, вы должны использовать это (я делаю, и все работает отлично).

...