在 ASP.NET Web 窗体上,我曾经有一个名为的实用程序静态类WebConfigSettings
,其中我从我的 Web.config 文件中读取了所有应用程序设置(例如WebConfigSettings.DebugModeEnabled
)。
在 MVC 上这是一个不好的做法吗?我应该更喜欢使用非静态类并使用依赖注入将其注入我的控制器吗?如果是,我应该把财产放在控制器的哪里?我在这篇文章中读到我不应该使用基本控制器。
问问题
1456 次
2 回答
2
静态类的问题在于,您将控制器与 .NET 配置系统耦合在一起,这使得它们更难以单独进行单元测试。您可以拥有一个IConfiguration
包含整个应用程序所需的必要属性的接口,以及从配置文件读取属性值的该接口的实现。现在剩下的就是配置你最喜欢的 DI 框架,将这个接口的正确实现注入到你的控制器构造函数中。在您的单元测试中,您将能够模拟此界面。
于 2012-11-04T13:29:18.177 回答
-2
这是我在 MVC 中使用的方法。我有一个具有多个属性的静态 AppSettings 类——它非常灵活,因为有些是从 Web.config、数据库/缓存中读取的,甚至是计算属性。
这可以在控制器之外使用——可能在模型或视图中。
于 2012-11-04T12:49:49.700 回答