.Net Core AddTransient、AddScoped和AddSingleton的使用

区别:spa

  • AddTransient 每次service请求都是得到不一样的实例,暂时性模式:暂时性对象始终不一样,不管是否是同一个请求(同一个请求里的不一样服务)同一个客户端,每次都是建立新的实例
  • AddScoped 对于同一个请求返回同一个实例,不一样的请求返回不一样的实例,做用域模式:做用域对象在一个客户端请求中是相同的,但在多个客户端请求中是不一样的
  • AddSingleton 每次都是得到同一个实例, 单一实例模式:单一实例对象对每一个对象和每一个请求都是相同的,能够说是不一样客户端不一样请求都是相同的

说明:对象

AddSingleton的生命周期:生命周期

项目启动-项目关闭   至关于静态类  只会有一个  作用域

AddScoped的生命周期:class

请求开始-请求结束  在此次请求中获取的对象都是同一个 service

AddTransient的生命周期:请求

请求获取-(GC回收-主动释放) 每一次获取的对象都不是同一个客户端

因为AddScoped对象是在请求的时候建立的,因此不能在AddSingleton对象中使用,甚至也不能在AddTransient对象中使用项目

相关文章
相关标签/搜索