018-019 NET5_内置容器支持依赖注入+IServiceCollection的生命周期
概念:
DI依赖注入: IServiceCollection仅支持构造函数注入
什么是依赖注入?
如果对象A依赖对象B,对象B依赖对象C,就可以先构造对象C,然后传递给对象B,再把对象B传递给A。得到A的具体实例;
IServiceCollection可以支持无限层级的依赖注入;前提是都要先注册服务(注册抽象和具体的映射关系)
分别注册对象A和对象B
在对象B构造函数中创建对象
控制中分别构造对象A和B
019 IServiceCollection的生命周期
在创建对象的时候,不同的情况,需要让对象单例;每一次都创建一个新实例;不同的作用域创建实例;
瞬时生命周期: 每一次getService获取到的实例,都是不同的实例
单例生命周期:在整个进程中获取到的都是同一个实例
作用域生命周期:在同一个作用域,获取到是同一的实例,不同的作用域下,获取的是不同的对象实例;
建议:开发中,一般情况下使用单例生命周期。更多的是瞬时生命周期的使用