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

.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操作则每次存取都要读写物理文件。

posted @ 2005-07-01 13:08 灵感之源 阅读(3536) 评论(2)  编辑 收藏 网摘 所属分类: 3.开源项目

  回复  引用    
#1楼2005-07-01 14:02 | reokok
在需要频繁读写情况下,文件形式的配置存储效率太差
  回复  引用  查看    
#2楼[楼主]2005-07-01 14:08 | 奋斗中的灵感之源      
选项配置,往往不会存储大量数据。

在意识到信息量大的情况下,还使用INI,那肯定不合理。

btw.“文件形式”,数据库也是文件形式。你应该说是非数据库的信息存钱效率低。

  回复  引用    
#3楼2005-07-01 15:11 | reokok
我说这个是因为现在碰到一个难题:
1。信息量并不大。
2。读写特别频繁。
3。这种情况使用数据库更加不理想。
设计单独的缓存机制又来不及了
所以有以上感叹

  回复  引用  查看    
#4楼2005-07-01 19:35 | 补丁      
十分倾慕奋斗中的灵感之源大哥:>
我想,既然微软已经提供了Enterprise Library
为什么不用Enterprise Library提供的模块来实现应用程序的配置呢?

@reokok
读写特别频繁的配置??
直接设计一个Config类不是很好么?
Config类的持久化可以做到文件里
运行期间也解决了频繁调用的效率问题

  回复  引用  查看    
#5楼2005-07-01 23:30 | 小残      
@补丁
"Config类的持久化可以做到文件里"是指序列化到xml文件吗?
---不好意思。我对序列化还不是太了解....




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 184519 v02d11Xtc68=




相关文章:

相关链接: