代码改变世界

为你的程序/系统提供强大的配置功能(选项配置文件的读写)

2005-07-01 13:08  灵感之源  阅读(...)  评论(... 编辑 收藏

.NET中,XML文件是首选的选项配置载体。

对于WinForm,有app.config,对WebForm,有web.config,.NET特别提供了System.Configuration来简化大家对选项配置的操作。

但,习惯使用INI的朋友们,你们是否会感到失望,因为.NET不提供INI的访问,因此访问者往往使用PInvoke调用WIN32 API,有些朋友还用纯C#实现了INI的访问。

关键的INI WIN32 API包括:
□读值:GetPrivateProfileString(非系统)
□写值:WritePrivateProfileString(非系统)
□读值:GetProfileString(系统)
□读值:WriteProfileString(系统)

其次还有:
□读区域名称列表:GetPrivateProfileSectionNames(非系统)
□读区域名称:GetPrivateProfileSection(非系统)
□写区域名称:WritePrivateProfileSection(非系统)
□读区域名称:GetProfileSection (系统)
□写区域名称:WriteProfileSection(系统)

慢着:INI究竟是什么?估计没有多少人说得清楚,因为大部分开发人员都只知道它是微软制定的文件格式,标准的键值对,用以存放程序的选项配置。

INI,读作“-in-ee”,代表Init(初始化)/Information(信息)。老Windows有2个系统INI文件:WIN.INI and SYSTEM.INI,存放了大量的系统信息,包括驱动程序列表等。自WIN95和WinNT开始,就采用Registry(注册表)了,现在Windows只是向下兼容才继续使用

今天,我就为大家介绍几个各具特色的INI访问类库(含源代码)。

1、INI Handler,纯C#,应用了SortedList;

2、Read/Write XML files, Config files, INI files, or the Registry
 □支持INI, XML, Registry

3、INIFile Class using VB.NET ,pure vb.net,不依赖WIN32 API。

4、NINI:http://nini.sourceforge.net/,最强大的,特点:
 □纯C#,
 □可跨.NET/Mono Linux/Mac/Windows ,
 □支持INI, XML, Registry
 □轻量级,
 □高速,
 □可把多个配置文件合并为一个,
 等等
 这是使用手册,这是API

 它之所以快,是因为它把整个文件载入内存进行操作。Windows的INI操作则每次存取都要读写物理文件。