在ASP.Net Core 1.1 Web API中,我需要存儲一些全局信息,這些信息必須在所有控制器中都可訪問。因此,當客戶端調用API上的某個端點時,必須設置某個變量(一個字典),該變量將從所有其他控制器中讀取。從我所看到的,使用全局靜態變量顯然是一個壞主意?也許有人會告訴我爲什麼,以及什麼是更好的選擇?我聽說過使用配置文件或緩存...Asp.Net Core中的全局變量的替代方案?
1
A
回答
2
許多開發人員不喜歡使用全局變量的一個主要原因是,他們可以很難(或不可能)完全單元測試一個使用全局變量的類他們。開發人員測試他們的代碼傾向於傾向於依賴注入而不是全局變量。
如果所需變量通過類的構造函數參數傳遞給類中,那麼單元睾丸可以傳遞這些變量的已知值,從而使得測試的預期結果可預測。這極大地幫助了單元測試。您可以從official documentation瞭解有關ASP.NET Core依賴注入的更多信息。
全局變量的另一個問題是它們可以從任何地方改變。因此,在調試時,有時會很難找到哪一段代碼改變了它們。通過使用依賴注入而不是全局變量,開發人員知道可以訪問該變量的特定類。
+0
是的,這絕對是DI最好的解決方案,無論是基於AddSingleton的InMemory實現還是基於IDistributedCache的分佈式(由於在現代網絡世界中,您通常擁有多臺服務器,這可能是一個更好的選擇)。 –
相關問題
- 1. asp.net core 2.0中System.Web.Hosting.HostingEnvironment.RegisterObject的替代方案
- 2. c中的全局變量的替代方案
- 3. C#中的全局變量替代?
- 4. Python替代全局變量
- 5. JavaScript中的回調/承諾或全局變量的替代方案
- 6. .NET Core中的SignedCms替代方案
- 7. 替代全局變量/常量
- 8. 全局變量的替代方案:MATLAB中的持久變量和嵌套函數
- 9. XBTT或替代解決方案中的全局計數器?
- 10. ASP.NET Webforms中的ViewState替代方案
- 11. ASP.NET中的會話替代方案
- 12. 在asp.net c中的LifeRay替代方案#
- 13. ASP.NET中web.config文件的替代方案
- 14. ASP.NET中MultiView的替代方案
- 15. asp.net核心中的全局變量
- 16. asp.net網站中的全局變量
- 17. ASP.NET表單中的全局變量
- 18. ASP.NET User.Identity.Name替代方案?
- 19. 替代Swift中的臭味全局變量?
- 20. ASP.NET MVC全局變量
- 21. 用遞歸函數中的靜態變量代替全局變量
- 22. ASP.NET MVC的ReportViewer替代方案
- 23. Android中靜態變量的替代方案
- 24. 使用全局變量將全局變量遞歸到迭代
- 25. 全局變量訪問解決方案的想法
- 26. SSIS解決方案廣泛的全局參數或變量
- 27. ASP.NET Core 2.0類庫中的Microsoft.AspNet.WebApi.Client的替代方法
- 28. PDF的高質量替代方案
- 29. HABTM質量分配的替代方案
- 30. lotusscript中的全局變量如何全局變量IBM Notes 9
我已經編輯過你的標題,讓這個問題少一些主觀並刪除了「任何建議?」在問題主體的末尾,由於stackoverflow不是一個建議網站,而且要求提供建議往往會導致問題被封閉和無法回答。 –