当前位置: 代码网 > it编程>编程语言>Asp.net > C#控制反转的使用详解

C#控制反转的使用详解

2026年01月04日 Asp.net 我要评论
前言控制反转是将对象的创建、依赖管理和生命周期控制从应用程序代码中转移出来,交由外部容器来管理,这种外部容器也称为ioc容器,在c#中比较常见的ioc容器是microsoft.extensions.d

前言

控制反转是将对象的创建、依赖管理和生命周期控制从应用程序代码中转移出来,交由外部容器来管理,这种外部容器也称为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#控制反转内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com