Posted on 2009-12-24 22:43
尘末 阅读(2834)
评论(0) 编辑 收藏 引用 所属分类:
编程技巧
读语句:
String str = ConfigurationManager.AppSettings["DemoKey"].Value;
写语句:
Configuration config = ConfigurationManager.OpenExeConfiguration("E:\db.config");
config.AppSettings.Settings["DemoKey"].Value = "DemoValue";
config.Save();
配置文件内容格式:(db.config)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="DemoKey" value="*" />
</appSettings>
</configuration>
以上是网上转载,我仔细测试了一下,发现这段代码会有一个小问题(其实网上的人也说到了),
ConfigurationManager.OpenExeConfiguration("E:\db.config");
这个方法会在这个目录下产生一个副本文件(E:\db.config.config), 而代码真正操作的文件却不是db.config,而是程序自动创建的db.config.config文件,所以很苦恼,若删除原文件,则又会提示报错,
在这里我做了一点稍微的改动就可以达要我们想要的目的,(不生成文件副本,直接操作此文件,且更新操作也是操作此文件):
//先实例化一个ExeConfigurationFileMap对象,把物理地址赋值到它的 ExeConfigFilename 属性中;
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = @"E:\MySrc\db.config";
//再调用fileMap 实例化 config , 这样,操作的文件就是db.config文件了,也不会产生副本文件
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
//读写操作跟原来一样,不变
String str = ConfigurationManager.AppSettings["DemoKey"];
config.AppSettings.Settings["DemoKey"].Value = "DemoValue";
//写完之后一定要保存,否则不会保存到文件中去的
config.Save();
首次发文,有点次,算是一个小问题的总结吧。