当前位置: 首页 > news >正文

vC#控制反转的使用详解

前言

控制反转是将对象的创建、依赖管理和生命周期控制从应用程序代码中转移出来,交由外部容器来管理,这种外部容器也称为IOC容器,在C#中比较常见的IOC容器是Microsoft.Extensions.DependencyInjection

1、不使用控制反转

下面的代码违反了软件设计中” 对象的创建和使用要分离“的原则,对象创建和使用都是在MainWindow类中完成,代码耦合性很高。

1

2

3

4

5

6

7

publicMainWindow()

{

InitializeComponent();

//非控制反转

ICamera camera=newCamera_DaHua();

camera.OpenCamera();

}

2、使用控制反转

使用IOC容器Microsoft.Extensions.DependencyInjection

下面的代码中你看不到ICamera对象的创建过程,只能看到它的使用过程,因为对象的创建全部在IOC容器中实现了。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

publicpartialclassMainWindow : Window

{

publicMainWindow()

{

InitializeComponent();

//控制反转

var services =newServiceCollection();

// 2. 注册服务

services.AddScoped(typeof(ICamera ),typeof(Camera_DaHua ));

// 3. 构建服务提供者,用于解析服务

var builder = services.BuildServiceProvider();

// 4. 从服务提供者中解析并使用服务

var car2 = builder.GetService<ICamera>();

car2.OpenCamera ();

}

}

到此这篇关于C#控制反转的使用详解的文章就介绍到这了


http://www.jsqmd.com/news/875620/

相关文章:

  • C盘空间告急?别急着删pagefile.sys,先搞懂Windows虚拟内存怎么设置才不卡
  • 2026石嘴山市黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 盛世金银回收
  • 2026海口市黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 盛世金银回收
  • 2026淮南市黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 盛世金银回收
  • 2026巴彦淖尔市黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 盛世金银回收
  • Go JWT实战:从iOS兼容性到双存储Refresh Token的完整落地
  • 从文本到流程:NLP与LLM驱动的业务流程模型自动提取技术
  • 2026邯郸市黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 盛世金银回收
  • 嵌入式信号函数时序模拟与µVision调试技巧
  • 2026宁波市黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 盛世金银回收
  • 2026朔州市黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 盛世金银回收
  • 2026巴中市黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 盛世金银回收
  • 2026黄冈市黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 盛世金银回收
  • 2026宁德市黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 盛世金银回收
  • 2026杭州市黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 盛世金银回收
  • 深入Linux显示架构:从一次AnolisOS黑屏事件,看懂xrandr、Xorg、GDM与显示器EDID是如何协同工作的
  • 2026四平市黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 盛世金银回收
  • 极验4滑块验证码纯Python逆向实现与工程化落地
  • 2026常德市黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 盛世金银回收
  • 2026白城市黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 盛世金银回收
  • 2026攀枝花市黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 盛世金银回收
  • 2026黄山市黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 盛世金银回收
  • K-12机器学习教育:数据驱动与算法驱动的教学路径选择与融合
  • PerfView定位C# Heap内存泄漏实战指南
  • 2026黄石市黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 盛世金银回收
  • 2026平顶山市黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 盛世金银回收
  • 图模型学习算法解析:迭代缩放、伪似然与评分匹配的工程实践
  • 2026白山市黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 盛世金银回收
  • 法律AI应用临界点已至(2024律所实测数据:文档审阅效率提升68%,错误率下降91%)
  • 量子噪声下VQE优化:融合贝叶斯优化与物理先验的EMICoRe算法