0

我有一个非常分层的 MVC3 应用程序(域、服务、Web、基础设施等的单独项目)

我了解控制器构造函数注入的概念,MVC3 和 Ninject 可以很好地协同工作。但是对于与 web 层分开的层的注入呢?

例如,我有一个依赖于 Repository 接口的服务。服务是从控制器调用的,服务本身会被构造函数注入正确注入,但是存储库呢?我该如何注射?

public class MyService
{
  protected virtual IPersonRepository PersonRepository {get; set;}

  public virtual void UseRepository()
  {
    PersonRepository.FindEveryoneInTheWorldButDontReturnThem();
  }
}

在上面的示例中,我在哪里/如何 [n] 注入存储库?

Ninject 3.0 Ninject.Web.MVC 3.0

4

1 回答 1

3

通过构造函数注入注入存储库,您的 IoC 容器 (Ninject) 将处理依赖链(即,当您将 MyService 作为依赖注入时,它的任何依赖也将由容器解析,它们的依赖等等)

public MyService(IPersonRepository personRepository)
{
    this.PersonRepository = personRepository;
}
于 2012-09-04T17:55:10.337 回答