.Net Core Web Api_筆記34_服務生命週期解析
不同則代表不同獨立的Service Instance 物件實體
生命週期:
Transient:每次被請求都會創建新的實體
Transient objects are always different; a new instance is provided to every controller and every service.
通常針對比較輕量無狀態保存需求的服務很適合配置這類生命週期
Scoped:每次Web請求會創建一個新實體,直到web請求結束就銷毀。
Scoped objects are the same within a request, but different across different requests.
每一個請求都會建立一次獨立的服務物件實體,參與單一個請求中所有middleware,mvc控制器
通常會針對EFCore Context ,資料庫上下文的存取服務制定此生命週期
Singleton:一旦被創建實體就會持續一直用,直到應用停止才銷毀。
Singleton objects are the same for every object and every request.
被建立的服務類別會被存在內存當中,並於整個應用中被重複利用。
通常會針對物件實體化成本較高的服務配置為Singleton生命週期,讓他只初始化一次。
ServiceType Class | In the capacityof same HttpRequest | Different Http Request |
AddSingleton | The same Instance of repository served | The same Instance of repository served |
AddScoped | Same Instance | Different Instance |
AddTransient | Every time New Instance | Every time New Instance |
留言
張貼留言