1. 程式人生 > >018-019 NET5_內建容器支援依賴注入+IServiceCollection的生命週期

018-019 NET5_內建容器支援依賴注入+IServiceCollection的生命週期

概念:

DI依賴注入: IServiceCollection僅支援建構函式注入

什麼是依賴注入?

如果物件A依賴物件B,物件B依賴物件C,就可以先構造物件C,然後傳遞給物件B,再把物件B傳遞給A。得到A的具體例項;

 IServiceCollection可以支援無限層級的依賴注入;前提是都要先註冊服務(註冊抽象和具體的對映關係)

分別註冊物件A和物件B

  在物件B建構函式中建立物件

 

 控制中分別構造物件A和B

 019 IServiceCollection的生命週期

   在建立物件的時候,不同的情況,需要讓物件單例;每一次都建立一個新例項;不同的作用域建立例項;

瞬時生命週期: 每一次getService獲取到的例項,都是不同的例項

單例生命週期:在整個程序中獲取到的都是同一個例項

作用域生命週期:在同一個作用域,獲取到是同一的例項,不同的作用域下,獲取的是不同的物件例項;

建議:開發中,一般情況下使用單例生命週期。更多的是瞬時生命週期的使用

 

  

&n