018-019 NET5_內置容器支持依賴注入+IServiceCollection的生命周期
概念:
DI依賴注入: IServiceCollection僅支持構造函數注入
什麼是依賴注入?
如果對象A依賴對象B,對象B依賴對象C,就可以先構造對象C,然後傳遞給對象B,再把對象B傳遞給A。得到A的具體實例;
IServiceCollection可以支持無限層級的依賴注入;前提是都要先註冊服務(註冊抽象和具體的映射關係)
分別註冊對象A和對象B
在對象B構造函數中創建對象
控制中分別構造對象A和B
019 IServiceCollection的生命周期
在創建對象的時候,不同的情況,需要讓對象單例;每一次都創建一個新實例;不同的作用域創建實例;
瞬時生命周期: 每一次getService獲取到的實例,都是不同的實例
單例生命周期:在整個進程中獲取到的都是同一個實例
作用域生命周期:在同一個作用域,獲取到是同一的實例,不同的作用域下,獲取的是不同的對象實例;
建議:開發中,一般情況下使用單例生命周期。更多的是瞬時生命周期的使用