天天看點

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

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

概念:

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

什麼是依賴注入?

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

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

分别注冊對象A和對象B

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

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

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

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

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

 019 IServiceCollection的生命周期

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

瞬時生命周期: 每一次getService擷取到的執行個體,都是不同的執行個體

單例生命周期:在整個程序中擷取到的都是同一個執行個體

作用域生命周期:在同一個作用域,擷取到是同一的執行個體,不同的作用域下,擷取的是不同的對象執行個體;

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

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