Удалите MVC 3 и разрешите зависимость, отличную от конструктора или свойства - PullRequest
0 голосов
/ 23 ноября 2011

У меня есть решение с веб-проектом MVC, проектом инфраструктуры, проектом служб и проектом данных.Я установил ninject от NuGet в Visual Studio.Он создал папку в моем веб-проекте под названием «App_Start» и поместил туда файл кода Ninject, и мое приложение работает совершенно нормально.

Моя проблема заключается в том, что мне нужно разрешить зависимость вне веб-проекта, котораяэто свойство или в конструкторе.

Я пробовал это в одном из моих классов в моем проекте служб:

    var m_customerService = DependencyResolver.Current.GetService(typeof(ICustomerService));

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

Я подозреваю, что это как-то связано с тем, как проекты ссылаются друг на друга.Мой веб-проект, очевидно, ссылается на все другие проекты.Я думал о переносе кода запуска Ninject в свой проект инфраструктуры, чтобы я мог получить к нему доступ где угодно.Имеет ли это смысл делать?У кого-нибудь еще была эта проблема, или я что-то упускаю?

Любая помощь по этому вопросу была бы потрясающей.Спасибо.

1 Ответ

0 голосов
/ 23 ноября 2011

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

...