Asp .Net Core 依賴注入

安全劍客發表於2020-07-08
藉助依賴注入,可以管理類之間的依賴,幫助我們在構建應用時遵循設計原則,確保程式碼可維護性和可擴充套件性。ASP.NET Core的整個架構中,依賴注入框架提供了物件建立和生命週期管理的核心能力,各個元件互相協作,也是依賴注入框架能力來實現的。

Asp .Net Core 依賴注入Asp .Net Core 依賴注入
兩個核心包:

  1. Microsft.Extensions.Dependency;injection.Abstractions (抽象包)
  2. Microsoft.Extensions.Dependencylinjectiob (具體實現)

*使用的是比較經典的介面分離模式,抽象包實現了介面的定義,實現包含具體的實現,元件只需要依賴他的抽象介面,而不需要依賴實現,在使用它的時候注入他的實現即可(這樣做的好處在於我們可以在使用時決定我們具體的那個實現,未來可以做任意的擴充套件來替換依賴注入的實現)
依賴注入的核心型別:

  1. IServiceCollection (負責服務的註冊)
  2. ServiceDescriptor (服務註冊時的資訊)
  3. IServiceProvider (具體的容器,由IServiceCollection)
  4. IServiceScope (表示一個容器的子容器的生命週期)
.Net Core裡提供了那些生命週期呢?
  1. 單例 Singleton (指整個根容器的生命週期內都是單例,不管時子容器還是根容器,它和作用域的區別,一個是全域性的,一個是範圍的單例)
  2. 作用域 Scoped (在容器(或子容器)的生存週期內,如果容器釋放掉那就意味著我的物件也會釋放掉,在這個範圍內得到的是一個單例模式)
  3. 瞬時(暫時)Transient (每次去從容器獲取物件時都可以得到一個全新的物件)

原文地址:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2703189/,如需轉載,請註明出處,否則將追究法律責任。

相關文章