你必须要知道的.NET core-----深入依赖注入容器之间的依赖关系(.NET Core的扩展类库)

回顾:  

                单例模式创建的实例保存在根容器(下次获取不用创建直接从根容器中获取)

     作用域模式下创建的实例保存在当前容器下

                瞬时模式===一次性的 没有生命的 所以不保存

Disposable的顺序:释放策略

                如果你采用了 瞬时 和作用域模式 并且实现了IDisposable接口:    被销毁时它会被保存,只有到服务提供对象执行Disposable方法执行时 一起被销毁

                如果是  单例模式  单例模式的服务实例保存在根容器中 你可以补充我应该说的话_________________________(由谁管理谁销毁  打哪来 回哪去)

ASP.NET CORE中 有一个全局根容器 -------------------------一个请求进入 就会创建一个与之对应的容器 用来处理对应请求所需的服务 

                    容器依赖注入时的规则:

                      容器能自动够提供构造函数所需的所有参数

     如果某个构造寒素的参数类型集合,能够成为所有合法构造函数参数类型的超集,那么这个构造函数就会被选择(之前我认为是选择最多的那个)

服务范围:---------------》生命周期决定了服务提供对象采用什么方式提供 和释放服务实例 

             关于容器创建的从属关系:根容器下只有一个子容器 根容器下的所有子容器都是平级的:子容器只关心根容器 ,子容器只关心根容器

              ASP.NET CORE中 每个作用域对象都是有明确的边界(每个HTTP的上下文)

                     

                         

 

 

  Application.serviceProvider 与 Request.serviceProvider

             ASP.NET CORE 应用在初始化的过程中 使用的服务实例都是由Application.serviceProvider提供的

               当处理某个具体请求时 都会更具具体请求创建一个Request.serviceProvider   一旦响应完成就会被释放 释放后变成垃圾对象被GC回收 (IDispoable)

 

 

     

 

 

 

   

posted @ 2021-09-04 12:52  三五八团楚云飞  阅读(77)  评论(0)    收藏  举报