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

Ian*_*oyd 5 .net dependency-injection

我试图在 .NET 中找到一个使用依赖注入的类的示例(例如,一个使用Builder或的类Factory来创建完整的对象 - 注入依赖项)

通过反光浏览时,我会想到一些更复杂的ado.netWebRequest对象将使用依赖注入-但没有。

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

Mau*_*fer 3

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

WCF的ChannelDispatcher具有IChannelListener的构造函数注入(强制依赖)。但一般来说,WCF 依赖配置来执行可选依赖项的用户级注入。

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

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

ASP.NET MVC 的控制器在 IActionInvoker 和 ITempDataProvider 上有 setter 注入(它们有默认实现)模型绑定器也是可注入的。

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