.Net Core AddTransient、AddScoped和AddSingleton的使用


區別:

  • AddTransient 每次service請求都是獲得不同的實例,暫時性模式:暫時性對象始終不同,無論是不是同一個請求(同一個請求里的不同服務)同一個客戶端,每次都是創建新的實例
  • AddScoped 對於同一個請求返回同一個實例,不同的請求返回不同的實例,作用域模式:作用域對象在一個客戶端請求中是相同的,但在多個客戶端請求中是不同的
  • AddSingleton 每次都是獲得同一個實例, 單一實例模式:單一實例對象對每個對象和每個請求都是相同的,可以說是不同客戶端不同請求都是相同的

說明:

AddSingleton的生命周期:

項目啟動-項目關閉   相當於靜態類  只會有一個  

AddScoped的生命周期:

請求開始-請求結束  在這次請求中獲取的對象都是同一個 

AddTransient的生命周期:

請求獲取-(GC回收-主動釋放) 每一次獲取的對象都不是同一個

由於AddScoped對象是在請求的時候創建的,所以不能在AddSingleton對象中使用,甚至也不能在AddTransient對象中使用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM