[C#]一个以xml实现的ini风格配置文件读写类

以前写程序用到配置文件,都是使用系统原生支持的ini读写方法读写配置文件的。后来改用C#,.net framework就没有原生的ini文件读写方法了。最开始是上网找的C#实现的ini读写类。但是有几个问题,一个是,毕竟ini文件正在逐步地不被微软所推荐,感觉开发者还是尽量跟上主流。第二个是,网上找的ini配置类往往实现得不太好,一些特殊符号例如等号,处理上会有问题。

所以后来在参照了很多网上实现的基础上就自己实现一个。这个类内部是使用DataSet保存数据,听起来DataSet好像很重型,但实际上效率方面问题不大,而且由于大量使用系统对xml原生机制,感觉比较稳定,对特殊符号的处理比较好。使用上,该类的读写格式仿照ini的风格,分为Section、Key、Value三个部分(不过是区分大小写的!)。让我比较满意的一点事,类的构造函数支持三种xml打开文件的方式,而且方便用户通过遵守微软新的配置文件读写规范的方式读写配置文件(就是可以方便地把配置文件放到User文件夹下)。

感觉是一个不错的类。

下载地址:

http://www.mamsds.net/WebApp/DownloadManager/Download.aspx?ID=3

 

最后抄一段别人关于xml和ini的对比的文章

xml确实是有很多的优点,某种程度上来说也确实可以完全取代ini,但也并非如有些人鼓吹的处处都比ini强。个人对这两种格式的优缺点做了一个总结。

 xml,对于描述复杂的数据结构非常的方便,缺点相对ini使用麻烦一点。在表达较短的配置时,没有ini简练。而且因为它有比较严格的格式审查机制,容错性也不是特别好,在手写时容易出现错误。抛开配置的功能,作为存储传输数据的手段,xml还有个缺点就是它的处理和存储的效率非常低下,解析速度慢,占用更多的存储空间。

 ini,通常用于对软件的参数进行配置和记录。优点是使用方便,嵌入程序也容易,几个接口就够了,很容易掌握。配置文件更小巧,手工配置也更容易。缺点是它的结构只有2层,对于复杂类型数据描绘就显得比较无力了。另外ini文件有64kb的大小限制。

 对于很小的简单配置来说,ini无疑是一种更简练,方便的实现方式。而xml则适合应付更复杂的需求。

总之这两种方式有各自的优缺点,有其各自更适用的领域。

发表评论

电子邮件地址不会被公开。 必填项已用*标注