我试图在.NET中找到一个使用Dependancy Injection的类的例子(例如,一个使用Builder或Factory来创建完整对象的类 – 注入依赖关系) 浏览Reflector,我原本以为一些更复杂的 ado.net 或 WebRequest 对象会
浏览Reflector,我原本以为一些更复杂的ado.net
或WebRequest
对象会使用依赖注入 – 但没有.
任何人都可以指向一个使用依赖注入来完成其工作的对象的.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框架是你可以学习的最糟糕的地方:大多数时候你将没有源代码,它是框架级(而不是应用程序级)代码非常特殊的要求.特别是微软非常谨慎地将事物公开(默认是内部的),而不是大多数开源项目,以便更好地管理他们的重大变化.