.Net Core AddTransient、AddScoped和AddSingleton的使用

區別:spa

  • AddTransient 每次service請求都是得到不一樣的實例,暫時性模式:暫時性對象始終不一樣,不管是否是同一個請求(同一個請求裏的不一樣服務)同一個客戶端,每次都是建立新的實例
  • AddScoped 對於同一個請求返回同一個實例,不一樣的請求返回不一樣的實例,做用域模式:做用域對象在一個客戶端請求中是相同的,但在多個客戶端請求中是不一樣的
  • AddSingleton 每次都是得到同一個實例, 單一實例模式:單一實例對象對每一個對象和每一個請求都是相同的,能夠說是不一樣客戶端不一樣請求都是相同的

說明:對象

AddSingleton的生命週期:生命週期

項目啓動-項目關閉   至關於靜態類  只會有一個  作用域

AddScoped的生命週期:class

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

AddTransient的生命週期:請求

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

因爲AddScoped對象是在請求的時候建立的,因此不能在AddSingleton對象中使用,甚至也不能在AddTransient對象中使用項目

相關文章
相關標籤/搜索