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

vC#控制反转的使用详解

前言控制反转是将对象的创建、依赖管理和生命周期控制从应用程序代码中转移出来交由外部容器来管理这种外部容器也称为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#控制反转的使用详解的文章就介绍到这了
http://www.zskr.cn/news/1364085.html

相关文章:

  • 服务器被入侵后如何应急响应:安全运维实战指南
  • 别再死磕矩阵求逆了!用Python的NumPy和SciPy搞定伪逆矩阵(pseudo-inverse)实战
  • Kerr相干态:从非线性量子光学到光子晶格模拟的实现路径
  • 机器学习辅助砌体结构均质化:从虚拟实验室到高效损伤本构模型
  • ML/MM混合方法在药物结合自由能计算中的基准评估与实战指南
  • 战略分类:当机器学习遭遇策略性操纵与未知图结构
  • 深度强化学习在VLSI布局优化中的应用与优化
  • 基于半监督学习的海洋异常检测技术解析
  • Trivy实战:Docker镜像漏洞扫描与CI/CD安全门禁集成
  • 结构可辨识性映射:提升小样本时间序列分类性能的机理驱动方法
  • 小样本下机器学习模型性能稳定性评估:分位数与置信区间实战
  • Windows 11 + WSL2 保姆级教程:手把手带你部署网易有道QAnything本地知识库
  • ARM Cortex-A76核心电源管理原理与实践
  • Android HTTPS抓包失败根源:系统证书信任链详解
  • VAE-TCN时间序列分析:从架构稳定性到复杂模式挖掘
  • 机器学习赋能高维量子导引检测:从SVM到ANN的实践探索
  • 随机森林回归与PISO算法融合:实现CFD在线模型修正与状态估计
  • 量子机器学习采样加速:热力学视角下的双向量子制冷器
  • 【芯片测试】:7. Action 与 Operating Sequence
  • 机器学习势函数与元动力学模拟:揭示电催化水分解的原子尺度反应机理
  • 基于Petri网与机器学习的等离子体化学反应网络简化方法
  • 年薪50万必备技能:.NET云原生架构实战,3分钟部署全球可用的微服务
  • Harness Engineering:麻绳还是马绳
  • 高维数据压缩:秩-1格点与双曲交叉方法原理与应用
  • Claude Code-入门篇-Claude-Code基础与环境配置
  • 基于图元随机游走的网络嵌入:提升同质性与下游任务性能
  • 告别Python踩坑:用ioapi的m3mask工具5分钟搞定CMAQ-ISAM区域文件(附int转float关键一步)
  • 量子机器学习数据集构建:从核心要素到工程实践
  • 经典通信赋能分布式量子机器学习:NISQ时代的实用化路径探索
  • LabVIEW 的Actor 框架原理与应用