C#控制反轉(zhuǎn)的使用詳解
前言
控制反轉(zhuǎn)是將對象的創(chuàng)建、依賴管理和生命周期控制從應用程序代碼中轉(zhuǎn)移出來,交由外部容器來管理,這種外部容器也稱為IOC容器,在C#中比較常見的IOC容器是Microsoft.Extensions.DependencyInjection
1、不使用控制反轉(zhuǎn)
下面的代碼違反了軟件設(shè)計中” 對象的創(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 ();
}
}
到此這篇關(guān)于C#控制反轉(zhuǎn)的使用詳解的文章就介紹到這了,更多相關(guān)C#控制反轉(zhuǎn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#環(huán)境下串口通信技術(shù)的技術(shù)體系與工程實踐詳解
串口通信(Serial?Communication)是工業(yè)控制、嵌入式開發(fā)、物聯(lián)網(wǎng)領(lǐng)域最基礎(chǔ)也最持久的通信方式,本文系統(tǒng)介紹了C#環(huán)境下串口通信的核心技術(shù)與實踐方案,感興趣的小伙伴可以了解下2026-05-05
從原理到代碼詳解C#解析Word表格數(shù)據(jù)的最佳實踐指南
在現(xiàn)代辦公環(huán)境中,Word文檔作為信息交換和存儲的重要載體,其地位舉足輕重,本文將深入探討如何使用C#從Word文檔中精確高效地提取表格數(shù)據(jù),感興趣的小伙伴可以了解下2025-11-11

