C#控制反转的使用详解
前言
控制反转是将对象的创建、依赖管理和生命周期控制从应用程序代码中转移出来,交由外部容器来管理,这种外部容器也称为IOC容器,在C#中比较常见的IOC容器是Microsoft.Extensions.DependencyInjection
1、不使用控制反转
下面的代码违反了软件设计中” 对象的创建和使用要分离“的原则,对象创建和使用都是在MainWindow类中完成,代码耦合性很高。
public MainWindow()
{
InitializeComponent();
//非控制反转
ICamera camera= new Camera_DaHua();
camera.OpenCamera();
}
2、使用控制反转
使用IOC容器Microsoft.Extensions.DependencyInjection

下面的代码中你看不到ICamera对象的创建过程,只能看到它的使用过程,因为对象的创建全部在IOC容器中实现了。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
//控制反转
var services = new ServiceCollection();
// 2. 注册服务
services.AddScoped(typeof(ICamera ), typeof(Camera_DaHua ));
// 3. 构建服务提供者,用于解析服务
var builder = services.BuildServiceProvider();
// 4. 从服务提供者中解析并使用服务
var car2 = builder.GetService<ICamera>();
car2.OpenCamera ();
}
}
到此这篇关于C#控制反转的使用详解的文章就介绍到这了,更多相关C#控制反转内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
C# winfroms使用socket客户端服务端的示例代码
这篇文章主要为大家详细介绍了C# winfroms使用socket客户端服务端的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下2024-02-02
C# / VB.NET 在PPT中创建、编辑PPT SmartArt图形的方法详解
本文介绍通过C#和VB.NET程序代码来创建和编辑PPT文档中的SmartArt图形。文中将分两个操作示例来演示创建和编辑结果,需要的朋友可以参考下2020-10-10


最新评论