使用configurationmanager从多个web.config文件中读取

时间:2012-08-21 19:52:30

标签: c# asp.net web-config configurationmanager

背景

我有一些数据存储在大约100个Web应用程序的web.config文件中。此数据逐渐转移到数据库。网页将显示web.config数据,直到有人点击“编辑”链接,在这种情况下,他们将被重定向到一个网页,这将允许他们更新这些数据,而不是将其保存在数据库中。

问题:

并非所有数据都会在此页面上更改,并将其保存到数据库中。当有人点击“编辑”链接时,我希望表单填充来自web.config文件的数据,当他们点击“保存”时,它会保存到数据库中。但是,使用配置管理器我只能从当前应用程序的web.config文件中提取数据。

问题:

  1. 有没有办法使用configurationmanager从../{dynamic_app_id}/web.config中选择web.config文件?
  2. 将它们作为普通的xml文件读取我唯一的选择吗?
  3. 这种做法有什么陷阱吗?
  4. 是否有其他可能更好的解决方案?

2 个答案:

答案 0 :(得分:17)

您可以轻松阅读任何配置文件。请参阅我的示例代码,其中我从外部app.config文件中读取应用程序设置:

        System.Configuration.KeyValueConfigurationCollection settings;
        System.Configuration.Configuration config;

        System.Configuration.ExeConfigurationFileMap configFile = new System.Configuration.ExeConfigurationFileMap();
        configFile.ExeConfigFilename = "my_file.config";
        config = System.Configuration.ConfigurationManager.OpenMappedExeConfiguration(configFile, System.Configuration.ConfigurationUserLevel.None);
        settings = config.AppSettings.Settings;

快乐的编码和最好的问候!

答案 1 :(得分:0)

您可以在web.config中添加以下部分

然后,在项目中添加“env”文件夹,并将环境设置添加到EnvironmentalSettings.config中。您仍然可以使用ConfigurationManager从EnvironmentalSettings文件中获取设置。

这会回答你的问题吗?