3

据我了解,我应该使用System.Configuration.ConfigurationManager来读取桌面应用程序中的应用程序设置,并System.Web.Configuration.WebConfigurationManager在 Web 应用程序中做同样的事情。这就是 MSDN 所说的。

我正在开发一个将部署到桌面和 Web 服务器的组件,因此我试图使配置逻辑独立于平台。令我惊讶的是,我偶然发现System.Configuration.ConfigurationManager在 Web 服务器上使用应用程序设置可以正确读取。

我有两个相关的问题:

  1. 任何人都可以确认这系统有效吗?
  2. System.Configuration.ConfigurationManager在 Web 应用程序上使用有哪些限制或风险?

谢谢。

4

2 回答 2

4

MSDN 说WebConfigurationManager是在 Web 应用程序中使用配置文件的首选方式。

在 Web 应用程序中,配置可以从父虚拟目录中的 web.config 文件继承:WebConfigurationManager将正确处理此类继承的设置,我认为ConfigurationManager.

当然,如果您的应用程序不继承此类设置(例如,始终位于网站的根目录),这与您无关。

于 2013-05-23T20:27:55.310 回答
1

System.Web.Configuration.WebConfigurationManager.AppSettings内部System.Web.Configuration.WebConfigurationManager.ConnectionStrings使用相同System.Configuration.ConfigurationManager- 所以没有区别。

MSDN 说:

这些方法执行只读操作,使用配置的单个缓存实例,并且支持多线程。

其他方法System.Web.Configuration.WebConfigurationManager与 ASP.NET 的配置有关。我认为它是网络生态系统的System.Web.Configuration.WebConfigurationManager扩展ConfigurationManager,甚至是适应网络生态系统。

所以,你应该使用通用的System.Configuration.ConfigurationManager.

于 2013-05-23T20:10:08.750 回答