在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. 全局變量的替代
- 4. C#中的全局變量替代?
- 5. 替代Django中的全局變量?
- 6. Python:代替全局變量
- 7. 全局變量替代
- 8. Python替代全局變量
- 9. 替代全局變量?
- 10. Ruby全局變量替代
- 11. .NET Core中的SignedCms替代方案
- 12. JavaScript中的回調/承諾或全局變量的替代方案
- 13. 替代全局變量的Android
- 14. ASP.NET MVC中每個用戶變量的會話替代方案
- 15. 替代全局變量/常量
- 16. 全局變量有哪些可能的替代方案,哪一個最好?
- 17. 全局變量的替代方案:MATLAB中的持久變量和嵌套函數
- 18. ASP.Net MasterPage的全局變量
- 19. XBTT或替代解決方案中的全局計數器?
- 20. ASP.NET Webforms中的ViewState替代方案
- 21. 在Asp.net中Forloop的替代方案c#
- 22. ASP.NET中web.config文件的替代方案
- 23. ASP.NET中的會話替代方案
- 24. 在asp.net c中的LifeRay替代方案#
- 25. ASP.NET中MultiView的替代方案
- 26. 替換php中的全局變量
- 27. 我的全局變量的答案?
- 28. ASP.NET全局類|全局變量
- 29. 全局變量崩潰我從來沒有使用全局變量方案
- 30. ASP.NET User.Identity.Name替代方案?
我已經編輯過你的標題,讓這個問題少一些主觀並刪除了「任何建議?」在問題主體的末尾,由於stackoverflow不是一個建議網站,而且要求提供建議往往會導致問題被封閉和無法回答。 –