c# - .net 的控制反转

标签 c# .net dependency-injection inversion-of-control

我很少听到有人使用 Inversion of Control (Ioc) .Net 的原则。我有一些使用 Java 的 friend ,他们在 Spring 和 PicoContainer 中使用了更多的 Ioc。

我理解从您的代码中删除依赖项的原则...但我怀疑它是否好得多。

为什么 .Net 程序员不使用(或较少使用)那些类型的框架?如果这样做,您真的会发现长期的积极影响吗?

最佳答案

很多人在 .NET 中使用 IOC,并且有多种框架可用于协助使用 IoC。你可能在 WinForms 方面很少看到它,因为当你在 Visual Studio 中设计表单时,很难让容器将所有东西连接在一起,但我可以说对于服务器端 .NET 应用程序,我至少在那里工作, IoC 的使用非常成功。

为什么在 .NET 中使用它?出于同样的原因,您在其他任何地方都使用它。我最喜欢的两件事是:

  • 针对 IoC 的设计倾向于强制执行良好的编码实践 - 设计接口(interface)、低耦合、高内聚。这也会导致非常容易进行单元测试的类。
  • 系统配置通常无需重新编译即可更改。

其他一些讨论可用于 .NET 的不同 IoC/DI 框架的帖子:

关于c# - .net 的控制反转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/250451/

相关文章:

java - 违反里氏替换原则怎么办?

c# - 构建 Xamarin 页面时获取数据的最佳方式是什么?

c# - 为什么我收到 Documents and Settings 文件夹的访问被拒绝错误?

.net - Axum vs TPL,异步

c# - 具有 Stream 类型成员的对象的 JSON.NET 序列化?

c# - 为 C# 中的所有请求向 Webbrowser 控件添加自定义 header ?

mysql - 如何使用依赖注入(inject)在 golang 中正确设置 defer .close

c# - Android 上的 XmlReader

java - Guice,扩展接口(interface)和构造函数返回类型

c# - DDD 和依赖注入(inject)