依賴注入是 ASP.NET Core 里的核心概念之一,我們平??偸怯淇斓卦?code style="margin: 1px 5px; padding: 0px 5px !important; line-height: 1.8; vertical-align: middle; display: inline-block; font-family: 'Courier New', sans-serif !important; font-size: 12px !important; border: 1px solid rgb(204, 204, 204) !important; border-radius: 3px !important; background-color: rgb(245, 245, 245) !important;">Startup類的ConfigureServices
方法里往IServiceCollection
里注冊(cè)各種類型,以致有一些同學(xué)可能誤以為依賴注入是只有 ASP.NET Core 才有的特性。但實(shí)際上依賴注入也可以用于 .NET Core 的 Console app. 別忘了, ASP.NET Core 的應(yīng)用本質(zhì)上也只是一個(gè) Console app而已。今天我們?cè)贑onsole app里試試依賴注入。
我們的目標(biāo)是創(chuàng)建一個(gè)Console app,在其中引入依賴注入,注冊(cè)不同生命周期的類型,然后創(chuàng)建幾個(gè)線程,每個(gè)線程分別依靠依賴注入“創(chuàng)建”若干類型實(shí)例,然后觀察不同生命周期下這些實(shí)例變量是否指向一個(gè)實(shí)例還是各不相同。
ServiceCollection
現(xiàn)在閉上眼睛想象一下(別睡著了),我們自己就是依賴注入的執(zhí)行者,如果有一個(gè)漂亮的程序媛跟我們說(shuō)她要某某類型的一個(gè)實(shí)例,我們應(yīng)該怎么做?我們首先需要知道這某某類型是個(gè)什么東西以及如何創(chuàng)建對(duì)吧?我們?nèi)绾沃滥兀慨?dāng)然是她得提前告訴我們啊,而我們要有個(gè)地方把這些信息保留下來(lái)然后在需要的時(shí)候可以查閱。在 .NET Core里,可以依賴注入的類型叫
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式