gpt4 book ai didi

c# - .NET Framework 中的控制反转和依赖注入(inject)

转载 作者:可可西里 更新时间:2023-11-01 08:00:43 26 4
gpt4 key购买 nike

在 .NET Framework 本身中是否有将 DI 作为架构原则或设计模式应用的具体示例/实例?框架/BCL 中的任何(或许多)类型是否符合 IoC?

类型名称和基于 C# 的简短说明/解释会很棒!

这会使将 DI 注入(inject)设计原则作为最佳实践的需求变得更加复杂......因为它是从基础框架本身收集而来的。

我重申,我不是在为 IoC/DI IN 框架寻找 IoC/DI 框架而是

编辑:只是想获得更多的实例/示例......因此赏金!

最佳答案

一般来说,BCL 中没有很多 DI 的例子——也许是因为 BCL 是一个相当独立的框架,而 DI 更多的是一个应用程序架构问题......但是,这里有一些例子我到目前为止已经能够找到。

构造函数注入(inject)

BCL中关于Constructor Injection的例子并不多。最佳人选是

  • System.IO.StreamWriter
  • System.IO.StreamReader

属性注入(inject)

  • System.ComponentModel.IComponent.Site

我们还看到了 Workflow Foundation 的 WorkflowRuntime.AddService 和相关方法的变体,尽管您可能会争辩说这更接近于方法注入(inject)。

方法注入(inject)

  • System.ComponentModel.Design.IDesigner.Initialize
  • System.ComponentModel.TypeConverter(许多方法采用 ITypeDescriptorContext)
  • System.Web.Mvc.IModelBinder.BindModel(来自 ASP.NET MVC)

环境语境

  • System.Threading.Thread.CurrentPrincipal
  • System.Threading.Thread.CurrentCulture
  • System.Threading.Thread.CurrentUICulture
  • System.Diagnostics.Trace.Listeners

FWIW,我从 my upcoming book 中提取了这些示例.

关于c# - .NET Framework 中的控制反转和依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3293785/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com