為什麼要使用依賴註入? 藉助依賴註入,可以管理類之間的依賴,幫助我們在構建應用時遵循設計原則,確保代碼可維護性和可擴展性 ASP.NET Core的整個架構中,依賴註入框架提供了對象創建和生命周期管理的核心能力,各個組件互相協作,也是依賴註入框架能力來實現的 兩個核心包: Microsft.Exte ...
為什麼要使用依賴註入?
- 藉助依賴註入,可以管理類之間的依賴,幫助我們在構建應用時遵循設計原則,確保代碼可維護性和可擴展性
- ASP.NET Core的整個架構中,依賴註入框架提供了對象創建和生命周期管理的核心能力,各個組件互相協作,也是依賴註入框架能力來實現的
兩個核心包:
- Microsft.Extensions.Dependency;injection.Abstractions (抽象包)
- Microsoft.Extensions.Dependencylinjectiob (具體實現)
*使用的是比較經典的介面分離模式,抽象包實現了介面的定義,實現包含具體的實現,組件只需要依賴他的抽象介面,而不需要依賴實現,在使用它的時候註入他的實現即可(這樣做的好處在於我們可以在使用時決定我們具體的那個實現,未來可以做任意的擴展來替換依賴註入的實現)
依賴註入的核心類型:
-
IServiceCollection (負責服務的註冊)
-
ServiceDescriptor (服務註冊時的信息)
- IServiceProvider (具體的容器,由IServiceCollection)
-
IServiceScope (表示一個容器的子容器的生命周期)
.Net Core里提供了那些生命周期呢?
-
單例 Singleton (指整個根容器的生命周期內都是單例,不管時子容器還是根容器,它和作用域的區別,一個是全局的,一個是範圍的單例)
-
作用域 Scoped (在容器(或子容器)的生存周期內,如果容器釋放掉那就意味著我的對象也會釋放掉,在這個範圍內得到的是一個單例模式)
- 瞬時(暫時)Transient (每次去從容器獲取對象時都可以得到一個全新的對象)
- ...待續Loading...