修改配置文件

  我们知道,配置文件(App.config)可以通过ConfigurationManager类读取,但是如何进行动态设置和保存呢?方法很多,这里介绍一种简单的方法:

  现在假定我有一个控制台项目,具体结构如下:

  这个App.config中内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="Name1" value="Value1" />
  </appSettings>
</configuration>

  现在把Name1对应的数值改为Value2。无法通过ConfigurationManager完成,怎么办呢?

  解决方法是:

  1)使用OpenMappedExeConfiguration进行读取——这个方法专门用于获取配置文件(App.config结构的),并且可以修改:

ExeConfigurationFileMap map = new ExeConfigurationFileMap();
            map.ExeConfigFilename="..\\..\\App.config";
            Configuration c = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
            c.AppSettings.Settings["Name1"].Value = "Value2";
            c.Save();

  2)使用OpenExeConfiguration法读取——这个方法和上面唯一的区别在于命名必须是(Exe文件名称.exe.config),这个文件应该随着程序发布而自己发布的,不是修改原来位于项目中的那个配置文件。

  相关代码:

Configuration c = ConfigurationManager.OpenExeConfiguration("Csharp.exe");
            c.AppSettings.Settings["Name1"].Value = "Value2";
            c.Save();

  注意:第二个方法不允许添加后缀config——因为默认会自动添加的!

posted @ 2013-04-23 11:40  Serviceboy  阅读(577)  评论(0编辑  收藏  举报