*使用的是比较经典的接口分离模式,抽象包实现了接口的定义,实现包含具体的实现,组件只须要依赖他的抽象接口,而不须要依赖实现,在使用它的时候注入他的实现便可(这样作的好处在于咱们能够在使用时决定咱们具体的那个实现,将来能够作任意的扩展来替换依赖注入的实现)架构
IServiceCollection (负责服务的注册)框架
ServiceDescriptor (服务注册时的信息)ide
IServiceScope (表示一个容器的子容器的生命周期)spa
单例 Singleton (指整个根容器的生命周期内都是单例,无论时子容器仍是根容器,它和做用域的区别,一个是全局的,一个是范围的单例)设计
做用域 Scoped (在容器(或子容器)的生存周期内,若是容器释放掉那就意味着个人对象也会释放掉,在这个范围内获得的是一个单例模式)对象