原文鏈接:https://www.cnblogs.com/ysmc/p/16012269.html
暫時(Transient)
- 暫時生存期服務是每次從服務容器進行請求時創建的, 這種生存期適合輕量級、 無狀態的服務,
作用域(Scoped)
- 對于 Web 應用,指定了作用域的生存期指明了每個客戶端請求(連接)創建一次服務,
- 在處理請求的應用中,在請求結束時會釋放有作用域的服務,
- 使用 Entity Framework Core 時,默認情況下使用范圍內生存期來注冊 DbContext 型別,
單例(Singleton)
- 來自依賴關系注入容器的服務實作的每一個后續請求都使用同一個實體, 如果應用需要單一實體行為,則允許服務容器管理服務的生存期,
- 單一實體服務必須是執行緒安全的,并且通常在無狀態服務中使用,
- 注意:不要從單一實體決議限定范圍的服務,并小心不要間接地這樣做,例如通過暫時性服務, 當處理后續請求時,它可能會導致服務處于不正確的狀態,最直接的影響是限定范圍的服務無法釋放,間接成了單例模式,一定要使用,就自己創建,并且顯式管理它的生命周期,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/450321.html
標籤:.NET Core
