Как мне использовать ninject в мультипроектном приложении mvc? - PullRequest
3 голосов
/ 07 февраля 2011

Мое приложение настроено таким образом. Объекты POCO Web Data Services

Контроллеры используют службы (поэтому их следует вводить) Службы используют репозитории (которые, как я полагаю, следует также вводить)

Iэто уже настроено так, что контроллеры получают необходимую им услугу через Ninject, но я не уверен, как это сделать с помощью services => репозитории

любая помощь с этим?

Ответы [ 3 ]

1 голос
/ 07 февраля 2011

Вы можете использовать расширение ninject.web.mvc . Он содержит пример приложения, которое иллюстрирует, как вы можете зарегистрировать контейнер в Global.asax.

1 голос
/ 07 февраля 2011

У Боба есть несколько блогов о шаблонах хранилищ с Ninject и NHibernate. Это почти то же самое для всех остальных картографов OR:

http://blog.bobcravens.com/2010/06/the-repository-pattern-with-linq-to-fluent-nhibernate-and-mysql/

http://blog.bobcravens.com/2010/07/using-nhibernate-in-asp-net-mvc/

http://blog.bobcravens.com/2010/09/the-repository-pattern-part-2/

0 голосов
/ 08 февраля 2011

Просто настройте зависимости ваших служб, а также зависимости контроллера.Ninject будет обходить цепочку зависимостей и разрешать их все. Например,

, ProductController зависит от IProductService IProductService, реализовано с ProductService, которое зависит от IProductRepository IProductRepositoryреализован с NHibernateProductRepository, который зависит от ISession.

, когда ваш NinjectControllerFactory пытается разрешить ProductController, он видит зависимость от IProductService.он разрешает эту зависимость как ProductService и видит, что она имеет зависимость от IProductRepository.и он будет продолжаться по цепочке, пока не сможет полностью разрешить аргумент.

, поэтому важной частью является привязка ЛЮБЫХ зависимостей, а не только тех, которые находятся в контроллере.

...