私は非常に階層化されたMVC3アプリケーションを持っています(ドメイン、サービス、Web、インフラストラクチャなどの個別のプロジェクト)
MVC3とNinjectがとても親切に連携するコントローラーコンストラクターインジェクションの概念を理解しています。しかし、Webレイヤーとは別のレイヤーの注入についてはどうでしょうか。
たとえば、リポジトリインターフェイスに依存するサービスがあります。サービスはコントローラーから呼び出され、サービス自体はコンストラクターインジェクションによって適切にインジェクトされますが、リポジトリについてはどうでしょうか。どうすればそれを注入できますか?
public class MyService
{
protected virtual IPersonRepository PersonRepository {get; set;}
public virtual void UseRepository()
{
PersonRepository.FindEveryoneInTheWorldButDontReturnThem();
}
}
上記の例のリポジトリをどこに/どのように[n]注入しますか?
Ninject 3.0 Ninject.Web.MVC 3.0