Asp .Net Core 依賴注入

爲何要使用依賴注入?

  • 藉助依賴注入,能夠管理類之間的依賴,幫助咱們在構建應用時遵循設計原則,確保代碼可維護性和可擴展性
  • ASP.NET Core的整個架構中,依賴注入框架提供了對象建立和生命週期管理的核心能力,各個組件互相協做,也是依賴注入框架能力來實現的

兩個核心包:

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

     *使用的是比較經典的接口分離模式,抽象包實現了接口的定義,實現包含具體的實現,組件只須要依賴他的抽象接口,而不須要依賴實現,在使用它的時候注入他的實現便可(這樣作的好處在於咱們能夠在使用時決定咱們具體的那個實現,將來能夠作任意的擴展來替換依賴注入的實現)架構

依賴注入的核心類型:

  • IServiceCollection    (負責服務的註冊)框架

  • ServiceDescriptor    (服務註冊時的信息)ide

  • IServiceProvider      (具體的容器,由IServiceCollection)
  • IServiceScope          (表示一個容器的子容器的生命週期)spa

.Net Core裏提供了那些生命週期呢?

  • 單例 Singleton (指整個根容器的生命週期內都是單例,無論時子容器仍是根容器,它和做用域的區別,一個是全局的,一個是範圍的單例)設計

  • 做用域 Scoped (在容器(或子容器)的生存週期內,若是容器釋放掉那就意味着個人對象也會釋放掉,在這個範圍內獲得的是一個單例模式)對象

  • 瞬時(暫時)Transient   (每次去從容器獲取對象時均可以獲得一個全新的對象)
  • ...待續Loading...
相關文章
相關標籤/搜索