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

概念

DI依賴注入: IServiceCollection僅支援構造函數注入

什麼是依賴注入?

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

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

分別註冊對象A和對象B

  在對象B構造函數中創建對象

 

 控制中分別構造對象A和B

 019 IServiceCollection的生命周期

   在創建對象的時候,不同的情況,需要讓對象單例;每一次都創建一個新實例;不同的作用域創建實例;

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

單例生命周期:在整個進程中獲取到的都是同一個實例

作用域生命周期:在同一個作用域,獲取到是同一的實例,不同的作用域下,獲取的是不同的對象實例;

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

 

  

 

Tags: