使用依赖注入的.NET Framework对象?

我试图在.NET中找到一个使用Dependancy Injection的类的例子(例如,一个使用Builder或Factory来创建完整对象的类 – 注入依赖关系)

浏览Reflector,我原本以为一些更复杂的ado.netWebRequest对象会使用依赖注入 – 但没有.

任何人都可以指向一个使用依赖注入来完成其工作的对象的.NET框架内的示例吗?

解决方法

以下是框架中依赖注入的几个示例:

WCF的ChannelDispatcher具有IChannelListener的构造函数注入(强制依赖).一般来说,WCF relies on configuration要做用户级注入可选依赖项.

System.Xml可以在很多地方进行穷人的依赖注入.例如,XmlDocument在XmlImplementation上有一个构造函数注入(内部).默认构造函数只是实例化所需的XmlImplementation. XmlImplementation本身依赖于XmlNameTable. XmlResolvers是另一个注入的例子.

MEF的CompositionContainer可选择依赖于ComposablePartCatalog和ExportProviders. ImportEngine具有ExportProvider的构造函数注入

ASP.NET MVC的Controller在IActionInvoker和ITempDataProvider上有setter注入(它们有默认实现)
模型粘合剂也是可注射的.

如果你刚开始使用依赖注入,恕我直言,.NET框架是你可以学习的最糟糕的地方:大多数时候你将没有源代码,它是框架级(而不是应用程序级)代码非常特殊的要求.特别是微软非常谨慎地将事物公开(默认是内部的),而不是大多数开源项目,以便更好地管理他们的重大变化.

相关文章

什么是设计模式一套被反复使用、多数人知晓的、经过分类编目...
单一职责原则定义(Single Responsibility Principle,SRP)...
动态代理和CGLib代理分不清吗,看看这篇文章,写的非常好,强...
适配器模式将一个类的接口转换成客户期望的另一个接口,使得...
策略模式定义了一系列算法族,并封装在类中,它们之间可以互...
设计模式讲的是如何编写可扩展、可维护、可读的高质量代码,...