我曾经有一个实用程序静态类,名为WebConfigSettings
,其中我从我的Web.config文件中读取了所有应用程序设置(例如{ {1}})。
这对MVC来说是不好的做法吗?我是否更喜欢使用非静态类并使用依赖注入将其注入我的控制器?如果是的话,我应该把财产放在控制器上?我已阅读this post我不应该使用基本控制器。
谢谢!
答案 0 :(得分:2)
静态类的问题在于您将控制器与.NET配置系统耦合,使得单独进行单元测试变得更加困难。您可以拥有一个IConfiguration
接口,其中包含您在整个应用程序中需要的必要属性,以及此接口的实现,从配置文件中读取属性的值。现在剩下的就是配置你喜欢的DI框架,将这个接口的正确实现注入到你的控制器构造函数中。在您的单元测试中,您将能够模拟此界面。
答案 1 :(得分:-2)
这是我在MVC中使用的方法。我有一个具有多个属性的静态AppSettings类 - 这非常灵活,因为有些是从Web.config,数据库/缓存中读取的,或者甚至是计算属性。
这可以在控制器之外使用 - 可能在模型或视图中使用。