AddTransient、AddSingleton、AddScoped 三者都应该在什么场景下使用
网上随便一搜,能搜出一大堆对三者进行区别分析的文章,但是呢,理论是一回事,实际使用又是另外一回事,到底在何种场景下应该使用何种注入方式呢?
通过这篇文章和我自身的实际经验,来说一说实际应用中的情况:
首先 AddTransient,这个文章中说的挺明白,就是当组件无法共享时,将使用Transient。非线程安全的数据库访问对象就是一个例子。
根据我实际遇到的情况,着重说一下 AddSingleton 和 AddScoped,毕竟这两种实际开发中用到的比较多。
于我个人而言,我比较习惯用AddScoped,但是在一次多线程的开发过程中,出现了问题——当我在class中初始化了一个AddScoped注入的函数,然后开了一个新的线程引用它时,就会dispose掉,这是因为:AddScoped为每个请求创建一个新实例,开一个新的线程,就不能共享主线程里的了,所以要改成始终是共享的AddSingleton。
AddSingleton在全局都是共享的,其生命周期最长。
转载于:https://www.cnblogs.com/Mindy-hym/p/11353886.html
AddTransient、AddSingleton、AddScoped 三者都应该在什么场景下使用相关推荐
- C# 依赖注入:AddTransient、AddScoped、AddSingleton的理解
区别: AddTransient: 每次service请求都是获得不同的实例,暂时性模式:暂时性对象始终不同,无论是不是同一个请求(同一个请求里的不同服务)同一个客户端,每次都是创建新的实例 AddS ...
- [css] 分析比较opacity: 0、visibility: hidden、display: none三者的优劣和适用场景
[css] 分析比较opacity: 0.visibility: hidden.display: none三者的优劣和适用场景 opacity 0: 单纯视觉效果,除了看不见,其他都正常. visib ...
- python语法基础学习-Python基础语法精心总结!看完都知道的可以往下继续学习了...
原标题:Python基础语法精心总结!看完都知道的可以往下继续学习了 这应该是最详细的Python入门基础语法总结! 定义变量,使用变量 1. input 用户自己输入值 2. print 打印值 可 ...
- zookeeper 都有哪些使用场景?
面试题 zookeeper 都有哪些使用场景? 面试官心理分析 假设现在聊的话题是分布式系统,面试官跟你聊完了 dubbo 相关的一些问题之后,已经确认你对分布式服务框架/RPC框架基本都有一些认知了 ...
- [css] 你有用过clip-path吗?说说你对它的理解和它都有哪些运用场景?
[css] 你有用过clip-path吗?说说你对它的理解和它都有哪些运用场景? clip-path属性可以创建一个只有元素的部分区域可以显示的剪切区域它的值可以为以下几种: 用 表示剪切元素的路径: ...
- 小夕说,不了解动态空间增长的程序喵都是假喵(下)
小夕在本系列前两篇文章中为大家介绍了各类数据结构的扩容策略,且在上篇文末,小夕提到了加倍式扩容中,倍率采用2并不是最优的,为什么呢?有没有最优倍率呢? 内存复用 如果倍率采用2甚至更大的数,那么被开辟 ...
- 分布式面试 - zookeeper 都有哪些使用场景?
分布式面试 - zookeeper 都有哪些使用场景? 面试题 zookeeper 都有哪些使用场景? 面试官心理分析 现在聊的 topic 是分布式系统,面试官跟你聊完了 dubbo 相关的一些问题 ...
- 沟通技巧-《好好说话》书中的精髓:掌握沟通、说服、谈判、演讲、辩论的五维话术,让你在任何场景下,都能做到处变不惊,学会说话这个技术活。
<好好说话>书中的精髓:掌握沟通.说服.谈判.演讲.辩论的五维话术,让你在任何场景下,都能做到处变不惊,学会说话这个技术活. 相信在生活中,每个人都可能因为不会说话遇到一些困难: 工作辛苦 ...
- 算法013:二维数组中的查找-在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断中是否存在
题目:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数.示例: 现有 ...
最新文章
- 1003个微生物基因组数据发布
- 政府免费WiFi遭吐槽:近七成网友表示从未用过
- Java基础:Java变量、数据类型、运算符(2)
- etcd分布式之服务发现需要
- 存在于实数域的微观粒子5-可分类性
- C++ STL : 模拟实现STL中的vector类
- IIS 7 托管管道模式 经典模式(Classic) 集成模式(Integrated) 分析与理解
- opboot怎么刷入固件_没有固件可刷的路由器,那就开个 SSH 折腾一下
- Android导出jar包后的资源使用问题
- Beta冲刺提交-星期五
- 服务器是怎么响应服务器的细节,我怎样才能得到响应从Web服务器
- 修改本机域名localhost为任意你想要的名称
- 某大学校园网设计方案大学校园拓扑图 全解
- NodeJS:图片验证码登录
- Butterworth低通滤波器 Matlab实现
- 微信安装旧版本方法,版本过低,请升级最新版本
- win7命名计算机无法下一步,win7还原系统不能点下一步怎么办(无响应)
- 我们爱分享----200多个js技巧代码
- QQ互联第三方登录多应用用户登录打通
- caffe的安装配置(CUDA7.5+VS2013)