一直习惯于用xml的Xpath来管理配置文件,最近看了下ConfigurationManager的文档,感觉还是很不错,用Configuration Manager 没有直接处理xml自由,但更方便快捷.封装了很多基本读写功能.省时省力.
Configuration Manager需要用到库,system.Configuration,如果没有的话,需要先去引用.Net组件System.Configuration
初始化Config
定义节点
configuration 是把config文件里的element定义为一个section,然后把这个section实例化为定义好的section类,element里的属性在程序里调用就是调用section类,十分简单.如下,为一个示范section类
这里需要注意的是ConfigurationProperty里的字符要跟属性里的字符一摸一样,区分大小写.
调用节点
根据section name来判断section有没有已存在,如果不存在的话就添加一个section.存在的话就调用它,代码如下:
如果需要把section放在sectionGroup里面的话,就定义一个SectionGroup,并add到config里.
读写节点
读写节点就更简单了,section作为1个class,我们调用节点的时候就是获得了这个class的实例,象普通的类一样,我们直接读写里面的属性,类似 sec.Test=123; int i=sec.Test ; 保存的时候调用config.Save()就可以了;
注意:如果config在读写的时候有其他程序修改了config,将会引起出错,所以我们最好使用singleton模式.
具体使用
最后还是来段简单的代码来看下Configuration Manager的实用
4个类SettingConfig 对应config文件,DbconnectionSection对应config上的一个section以及ConfigManager和program类
DbconnectionSection.cs:
ConfigManager.cs
SettingConfig.cs 实用singleton模式,
program.cs 运行读写.
总结
Configuration Manager真的很简单易用,没什么可写的.我用的时候感觉有一点需要注意的 就是如果程序版本升级的时候,section class把某个旧的属性去掉,而config文件还是旧的的话,将会报错,找不到section.