Где я должен делать инъекции с Ninject 2+ (и как мне расположить свои модули?)

У меня есть решение с двумя соответствующими (к этому вопросу) проектами и несколькими другими;

Библиотека классов с функциональностью, используемой несколькими другими проектами.ASP.NET MVC приложение.

Мой вопрос в основном, где я должен делать IoC с Ninject 2, учитывая ...

Библиотека классов нуждается в некоторой DI-любви, в том числе в классах репозитория, которым нужны веб-запросы для конкретных объектов сеанса (например, Unit of Work).Приложение MVC нуждается в DI, поскольку с Ninject 2 вы в основном наследуетесь от NinjectHttpApplication.Модульные тесты для библиотеки классов должны знать об этом, чтобы внедрить другой набор репозиториев.Модульные тесты для веб-приложения необходимо вводить по той же причине.

Я заглянул сюда в ментальный угол, потому что видел только три варианта. DI в библиотеке классов, DI в веб-приложении или оба, но есть проблемы с каждым:

Я не могу сделать DIтолько в библиотеке классов, поскольку приложение MVC для начала должно наследовать от NinjectHttpApplication.Я не могу сделать DI только в приложении MVC - библиотека классов, в конце концов, используется другими библиотеками, и приложение MVC в любом случае не должно знать слишком много о внутренностях библиотеки.Я думаю, что это единственный выход, который я вижу: независимый IoC для обоих проектов. Библиотека классов и приложение MVC имеют свои собственные настройки IoC и выполняют DI для своих вещей, не заботясь друг о друге.

У кого-нибудь есть "лучшие практики" или рекомендации, как сделать что-то подобное? Я не могу себе представить, что я первый, кто окажется в такой ситуации, и было бы неплохо узнать, каков «правильный» способ сделать это ...

Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос