AddTransient、AddSingleton、AddScoped 三者都应该在什么场景下使用
生活随笔
收集整理的這篇文章主要介紹了
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 三者都应该在什么场景下使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Lattice Diamond Reve
- 下一篇: 万能素材库_自媒体运营必备3款黑科技工具