依赖注入容器?它有什么作用?

时间:2011-11-04 20:04:02

标签: c# design-patterns dependency-injection

我一直在阅读DI,这似乎是一个简单的概念。我没有得到的是容器。让我们说一下,我想创建自己的容器。像“detect”这样的动词被使用,我不知道容器如何“检测”创建了一个新的依赖对象并且知道注入它的依赖关系。对我而言,容器似乎是一个美化的工厂。

任何人都可以解释容器是如何实际实现的,还是可以指向一个资源?

谢谢!

2 个答案:

答案 0 :(得分:14)

这取自Windsor documentation

  

控制倒置

     

控制反转是框架使用的一种原则   允许开发人员使用扩展框架或创建应用程序   它。基本思想是框架知道程序员的意思   对象并对它们进行调用。

     

这与开发人员代码所使用的API相反   对API代码的调用。因此,框架颠倒了控制:   它不是开发人员代码,而是框架   根据一些刺激进行调用。

     

你可能已经遇到过你的情况   这个原则的亮点,即使你没有意识到这一点。

     

控制容器的反转

     

控制容器的反转使用上述原理   (简而言之)管理课程。也就是说,他们的创造,破坏,   生命周期,配置和依赖关系。这样的类没有   需要获取和配置他们依赖的类。这个   大大减少了系统中的耦合,因此,   简化了重用和可测试性。

     

人们认为“倒置”会产生一些混乱   of Control'是'反转控制容器'的同义词。如   说,控制倒置是一个更广泛的原则。

     

通常人们认为这完全是关于“注射”和广播   这是IoC容器的主要目的。事实上,   “注射”是一个结果,一种解耦的手段,而不是主要的手段   目的

答案 1 :(得分:2)

你可能想读这本书Dependency Injection In .NET ......我已经读过了,我强烈建议你阅读它。它首先给出了一个关于DI的精彩而富有洞察力的解释,然后展示了关于DI的真实世界应用的代码和模式。

从这本书中,用太少的话来说......

"DI container is the technology used to support the DI technique" Page 55