修改配置文件
我们知道,配置文件(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——因为默认会自动添加的!