一、services.AddTransient<IApplicationService,ApplicationService>//服務在每次請求時被建立,它最好被用於輕量級無狀態服務(如咱們的Repository和ApplicationService服務)設計模式
二、services.AddScoped<IApplicationService,ApplicationService>//服務在每次請求時被建立,生命週期橫貫整次請求spa
三、services.AddSingleton<IApplicationService,ApplicationService>//Singleton(單例) 服務在第一次請求時被建立(或者當咱們在ConfigureServices中指定建立某一實例並運行方法),其後的每次請求將沿用已建立服務。若是開發者的應用須要單例服務情景,請設計成容許服務容器來對服務生命週期進行操做,而不是手動實現單例設計模式而後由開發者在自定義類中進行操做。設計
權重:對象
AddSingleton→AddTransient→AddScoped生命週期
一、AddSingleton的生命週期:項目啓動-項目關閉 至關於靜態類 只會有一個 開發
二、AddScoped的生命週期:請求開始-請求結束 在此次請求中獲取的對象都是同一個 it
三、AddTransient的生命週期:請求獲取-(GC回收-主動釋放) 每一次獲取的對象都不是同一個io