什么是dependency injection上下文中的组合根

我正在探索dependency injection,术语组合根被用在所有地方。 那是什么?

组合根是应用程序中的单一位置,应用程序中使用dependency injection容器为应用程序组成对象图组合(尽pipe如何完成这个操作是无关紧要的,它可以使用容器,也可以使用纯手动完成DI )。

应该只有一个地方发生这种情况,你的容器不需要在组合根之外使用。

引用下面的一个答案:

实际上,这意味着你应该在应用程序的根目录下configuration容器。

  • 在桌面应用程序中,这将是在主方法(或非常接近它)
  • 在ASP.NET(包括MVC)应用程序中,这将在Global.asax中
  • 在WCF中,这将在一个ServiceHostFactory
  • 等等

这里有一个很好的答案,这更多地解释了这一点。

另请参阅此答案 。