最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#控制反轉(zhuǎn)的使用詳解

 更新時間:2026年01月04日 10:44:10   作者:上位機馬工  
控制反轉(zhuǎn)是將對象的創(chuàng)建、依賴管理和生命周期控制從應用程序代碼中轉(zhuǎn)移出來,交由外部容器來管理,下面就來詳細的介紹一下C#控制反轉(zhuǎn)的使用,感興趣的可以了解一下

前言

控制反轉(zhuǎn)是將對象的創(chuàng)建、依賴管理和生命周期控制從應用程序代碼中轉(zhuǎn)移出來,交由外部容器來管理,這種外部容器也稱為IOC容器,在C#中比較常見的IOC容器是Microsoft.Extensions.DependencyInjection

1、不使用控制反轉(zhuǎn)

下面的代碼違反了軟件設計中” 對象的創(chuàng)建和使用要分離“的原則,對象創(chuàng)建和使用都是在MainWindow類中完成,代碼耦合性很高。

  public MainWindow()
        {
            InitializeComponent();
            //非控制反轉(zhuǎn)
            ICamera camera= new Camera_DaHua();
            camera.OpenCamera();
        }

2、使用控制反轉(zhuǎn)

使用IOC容器Microsoft.Extensions.DependencyInjection

下面的代碼中你看不到ICamera對象的創(chuàng)建過程,只能看到它的使用過程,因為對象的創(chuàng)建全部在IOC容器中實現(xiàn)了。

public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
         
            //控制反轉(zhuǎn)
            var services = new ServiceCollection();
            
            // 2. 注冊服務
            services.AddScoped(typeof(ICamera ), typeof(Camera_DaHua ));
            
            // 3. 構(gòu)建服務提供者,用于解析服務
            var builder = services.BuildServiceProvider();
         
            // 4. 從服務提供者中解析并使用服務
            var car2 = builder.GetService<ICamera>();
            car2.OpenCamera ();
          
        }
    }

到此這篇關于C#控制反轉(zhuǎn)的使用詳解的文章就介紹到這了,更多相關C#控制反轉(zhuǎn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 使用C#快速搭建一個在windows運行的exe應用

    使用C#快速搭建一個在windows運行的exe應用

    這篇文章主要介紹了使用C#快速搭建一個在windows運行的exe應用,這是一個比較舊的內(nèi)容,但是一直都沒有空寫,今天花點時間,把我掌握的C# 分享給初學的人或者感興趣的人,希望能對你有一定幫助,感興趣的小伙伴跟著小編一起來看看吧
    2024-07-07
  • C#獲取DICOM圖像像素的像素值的代碼詳解

    C#獲取DICOM圖像像素的像素值的代碼詳解

    DICOM即醫(yī)學數(shù)字成像和通信,是醫(yī)學圖像和相關信息的國際標準(ISO 12052),它定義了質(zhì)量能滿足臨床需要的可用于數(shù)據(jù)交換的醫(yī)學圖像格式,這篇文章主要介紹了C#獲取DICOM圖像像素的像素值的方法,需要的朋友可以參考下
    2024-07-07
  • C#環(huán)境下串口通信技術的技術體系與工程實踐詳解

    C#環(huán)境下串口通信技術的技術體系與工程實踐詳解

    串口通信(Serial?Communication)是工業(yè)控制、嵌入式開發(fā)、物聯(lián)網(wǎng)領域最基礎也最持久的通信方式,本文系統(tǒng)介紹了C#環(huán)境下串口通信的核心技術與實踐方案,感興趣的小伙伴可以了解下
    2026-05-05
  • 從原理到代碼詳解C#解析Word表格數(shù)據(jù)的最佳實踐指南

    從原理到代碼詳解C#解析Word表格數(shù)據(jù)的最佳實踐指南

    在現(xiàn)代辦公環(huán)境中,Word文檔作為信息交換和存儲的重要載體,其地位舉足輕重,本文將深入探討如何使用C#從Word文檔中精確高效地提取表格數(shù)據(jù),感興趣的小伙伴可以了解下
    2025-11-11
  • c# 圓形識別方案和直線識別方案的參考示例

    c# 圓形識別方案和直線識別方案的參考示例

    這篇文章主要介紹了c# 圓形識別方案和直線識別方案的實現(xiàn)示例,幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C#判斷一個圖像是否是透明的GIF圖的方法

    C#判斷一個圖像是否是透明的GIF圖的方法

    這篇文章主要介紹了C#判斷一個圖像是否是透明的GIF圖的方法,涉及C#針對gif圖片屬性的相關操作技巧,需要的朋友可以參考下
    2015-06-06
  • C#定義常量的五種常用方法

    C#定義常量的五種常用方法

    作為一名 C# 程序員,常量就像我們代碼中的小伙伴,時刻陪伴著我們,在 C# 中,定義常量有幾種簡單而有效的方法,今天,我想和大家分享 5 種常用的常量定義方式,需要的朋友可以參考下
    2025-11-11
  • C#實現(xiàn)AI五子棋游戲的示例代碼

    C#實現(xiàn)AI五子棋游戲的示例代碼

    這篇文章主要為大家詳細介紹了C#如何智能AI五子棋游戲中的人工下棋操作以及對應的機器操作,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-11-11
  • Unity使用DoTween實現(xiàn)拋物線效果

    Unity使用DoTween實現(xiàn)拋物線效果

    這篇文章主要為大家詳細介紹了Unity使用DoTween實現(xiàn)拋物線效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • 分享我在工作中遇到的多線程下導致RCW無法釋放的問題

    分享我在工作中遇到的多線程下導致RCW無法釋放的問題

    最近在做項目中遇到一個問題,在調(diào)用一個類庫中的方法時,出現(xiàn)如下異常信息:嘗試釋放正在使用的RCW,活動線程或其他線程上正在使用該 RCW,釋放正在使用的 RCW 的嘗試會導致?lián)p壞或數(shù)據(jù)丟失
    2015-12-12

最新評論

临猗县| 白城市| 田东县| 兰州市| 盘锦市| 永兴县| 兴仁县| 喀喇| 前郭尔| 东台市| 娱乐| 加查县| 东阿县| 黑河市| 波密县| 九龙坡区| 阳山县| 缙云县| 离岛区| 肇庆市| 鄂尔多斯市| 江油市| 土默特左旗| 奈曼旗| 富宁县| 三河市| 青岛市| 天峻县| 江源县| 恭城| 洛隆县| 玉溪市| 卢湾区| 南郑县| 平原县| 和平区| 杨浦区| 辛集市| 揭西县| 鄂伦春自治旗| 莎车县|