У меня есть решение с двумя соответствующими (на этот вопрос) проектами и несколькими другими;Где я должен делать инъекцию с помощью Ninject 2+ (и как я могу упорядочить свои модули?)
- Классная библиотека с функциональностью, используемой несколькими другими проектами.
- Приложение ASP.NET MVC.
Мой вопрос заключается в основном, где я должен делать IoC с Ninject 2, принимая во внимание ...
- Библиотеки классов необходима DI любви, между прочим, в классах хранилища, которые требуют запрос веб конкретной сессии объектов (думаю, Единица работы).
- Приложение MVC нуждается в DI, так как с Ninject 2 вы в основном наследуете от NinjectHttpApplication.
- Модульные тесты для библиотеки классов должны быть осведомлены об этом, чтобы ввести другой набор репозиториев.
- Модульные тесты для веб-приложения необходимо вводить по той же причине.
Я нарисовал себя в ментальном уголке здесь, потому что я видел только три варианта. DI в библиотеке классов, DI в веб-приложение, или оба, но есть проблемы с каждым:
- Я не могу сделать DI только в библиотеке классов, так как приложение MVC должно наследовать от NinjectHttpApplication начать с.
- Я не могу делать DI только в приложении MVC - библиотека классов используется другими библиотеками, в конце концов, и MVC-приложение не должно слишком много знать о внутренних функциях библиотеки.
- Я думаю, это единственный выход, который я вижу: Независимый IoC для обоих проектов. Библиотека классов и приложение MVC имеют свою собственную настройку IoC и делают DI для своих вещей, не заботясь друг о друге.
Есть ли у кого-нибудь «лучшие практики» или рекомендации о том, как это сделать? Я не могу себе представить, что я первый человек, оказавшийся в этой ситуации, и было бы неплохо узнать, что «правильный» способ сделать это ...
Спасибо!
related: http://stackoverflow.com/questions/5267525/dal-bll-gui-composition-root-how-to-setup-di-bindings –
Дублируйте с некоторыми комментариями, заслуживающими внимания для полноты, если вы действительно пытаясь получить полную информацию http://stackoverflow.com/questions/5733591/best-location-for-fluent-ioc-configuration-modules-currently-trying-ninject –