前言控制反转是将对象的创建、依赖管理和生命周期控制从应用程序代码中转移出来交由外部容器来管理这种外部容器也称为IOC容器在C#中比较常见的IOC容器是Microsoft.Extensions.DependencyInjection1、不使用控制反转下面的代码违反了软件设计中” 对象的创建和使用要分离“的原则对象创建和使用都是在MainWindow类中完成代码耦合性很高。1234567publicMainWindow(){InitializeComponent();//非控制反转ICamera cameranewCamera_DaHua();camera.OpenCamera();}2、使用控制反转使用IOC容器Microsoft.Extensions.DependencyInjection下面的代码中你看不到ICamera对象的创建过程只能看到它的使用过程因为对象的创建全部在IOC容器中实现了。123456789101112131415161718192021publicpartialclassMainWindow : Window{publicMainWindow(){InitializeComponent();//控制反转var services newServiceCollection();// 2. 注册服务services.AddScoped(typeof(ICamera ),typeof(Camera_DaHua ));// 3. 构建服务提供者用于解析服务var builder services.BuildServiceProvider();// 4. 从服务提供者中解析并使用服务var car2 builder.GetServiceICamera();car2.OpenCamera ();}}到此这篇关于C#控制反转的使用详解的文章就介绍到这了