Onde devo fazer a injeção com Ninject 2+ (e como faço para organizar meus módulos?)

Eu tenho uma solução com dois projetos relevantes (para esta questão) e alguns outros;

Biblioteca de classes com funcionalidade usada por vários outros projetos.Aplicativo ASP.NET MVC.

Minha pergunta é basicamente onde eu deveria fazer o IoC com o Ninject 2, considerando ...

A biblioteca de classes precisa de algum amor, entre outras coisas nas classes de repositórios que precisam de objetos de sessão específicos para solicitações da web (pense em Unit of Work).O aplicativo MVC precisa de DI já que com o Ninject 2 você basicamente herda de NinjectHttpApplication.Testes de unidade para a biblioteca de classes precisam estar cientes disso para injetar um conjunto diferente de repositórios.Testes de unidade para o aplicativo da Web precisam ser injetados pelo mesmo motivo.

Eu me pintei em um canto mental aqui, porque eu só vi três opções para começar. DI na biblioteca de classes, DI no aplicativo da web ou ambos, mas há problemas com cada um:

Eu não posso fazer DIsó na biblioteca de classes, já que o aplicativo MVC precisa herdar de NinjectHttpApplication para começar.Eu não posso fazer DI apenas no aplicativo MVC - a biblioteca de classes é usada por outras bibliotecas, afinal de contas, e o aplicativo MVC não deveria saber muito sobre os internos da biblioteca de qualquer maneira.Eu acho que esta é a única saída que eu posso ver: Independent IoC para ambos os projetos. A biblioteca de classes e o aplicativo MVC têm sua própria configuração de IoC e fazem DI por suas coisas sem realmente se importar um com o outro.

Alguém tem algumas "melhores práticas" ou orientações sobre como fazer algo assim? Eu não posso imaginar que sou a primeira pessoa a acabar nesta situação, e com certeza seria bom saber qual é a maneira "correta" de fazer isso ...

Obrigado!

questionAnswers(1)

yourAnswerToTheQuestion