上一篇“擁抱.NET Core系列:依賴注入(1)”大體介紹了服務註冊、獲取和生命週期,這一篇來做一些補充。
由於內容跨度大(.NET Core、ASP.NET Core),所以文章並不是非常的貫穿,大家可以挑著看。
建構函式的選擇
如果一個服務中包含多個建構函式,.NET Core會選擇哪一個呢?
答案是:最大匹配的建構函式。
我們來看個示例
泛型服務
單個泛型
多個泛型
整合第三方DI容器
我們這邊使用Autofac來做演示。
安裝packages:“Autofac.Extensions.DependencyInjection”
在 ASP.NET Core
注意修改“ConfigureServices”方法的返回值為“IServiceProvider”。
在 View 中使用服務
其它
在 ASP.NET Core 中,每個Request,都會建立一個新的DI子容器,在請求結束後會銷燬該DI子容器。這樣可以很好的避免資源洩漏。子容器的服務生命週期可以參考上一篇文章。
寫在最後
.NET技術棧QQ群:384413261(點選加入.NET Group)