在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不是一个建议网站,而且要求提供建议往往会导致问题被封闭和无法回答。 –