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: