使用依赖注入/服务定位器容器的最佳实践?

时间:2016-08-05 15:26:46

标签: dependency-injection inversion-of-control service-locator

TLDR:配置IoC容器后,最好的方法是什么?

我一直在阅读IoC(依赖注入,服务定位器等)。我认为DI很好,IoC容器可以更容易实例化对象,但我没有找到的是显示如何实际使用注入容器的任何内容配置它。大多数教程都停留在收集容器设置并发送给您的路上,但出于某种原因,它只是没有点击如何在配置后最好地利用您的注射容器。

据我所知,有两种方法可以使用容器:

  1. 预先实例化每个可想到的依赖关系,并通过具有潜在大量依赖关系的单个入口点使这些依赖关系流过应用程序。
    • 这看起来很愚蠢,因为你可能会创建许多你并不真正需要的类实例。看来你几乎不需要容器来做这件事。
  2. 将注入容器移动到某个全局范围,并在需要具有依赖关系的新对象时调用它。
    • 这看起来很愚蠢因为 a。)现在你创建了一个全局/单身(barf)和 b。)现在你的依赖注入器 iteself 是一种依赖。
  3. 这两个选项似乎都不合理,所以我想知道我是否遗漏了一些关于如何在实践中使用注射容器的基本知识。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:-1)

您正在寻找对象生命周期的概念。 Autofac对此主题有great primer