【CSharp 学习笔记】关于ini文件的操作

来源:互联网 发布:windows 7虚拟机设置 编辑:程序博客网 时间:2024/06/02 02:19

此篇博客的背景

 这几天打算写一个小程序,经常需要用到读取预先设置好的配置项,而每次使用的时候都需要写下许多的代码,不仅有点累,代码有些冗长,而且也不太直观。所以我想,不如将对ini文件的操作封装成一个类,需要使用的时候直接根据路径实例化一个类,然后对其进行操作。
 说到这里,我觉得还不够简便,不如更直观一点?我想到了之前我发过的那篇博客①,也许有用武之地了!想到就做,于是花了半个小时,写出来了INIManager类。


##假设有一个配置文件 config.ini[Section]Key=value[Test]TestKey=Hello World!TestINT=32
//举个栗子,实例化一个操作类INIManager ini = new INIManager("./config.ini");//开始对其进行读写//向配置文件中的 Section 节点里的 Key 键写入值 Value,如果已存在则覆写,如果不存在则添加ini["Section"]["Key"] = "Value";//读取ini文件中的配置,这里会输出 ValueDebug.WriteLine(ini["Section"]["Key"]);//这个则会输出 Hello World!Debug.WriteLine(ini["Test"]["TestKey"]);//GetValue是个泛型方法,能够取出一些基本类型,如下将会输出 16Debug.WriteLine(ini["Test"].GetValue<int>("TestINT") / 2);//Section 的 Delect 方法会删除指定的键值对ini["Test"].Delect("TestKey");//不指定键,则清空 Section,该方法不会删除 Section,而是清空所有的键值对ini["Test"].Delect();//Delect方法会清空指定的 Sectionini.Delect("Test");

 整个类的结构大概如下:

 INIManager(主类)
   ↓
 Section(ini[“Section”]就会返回一个Section类)

 编写过程中会遇到一些麻烦,主要就是对于该如何封装,如何实现,有的时候会忽然感觉到迷糊,自己之前为什么要这么写。
 一开始定义了三个类,一个INIManager,一个Section,一个Item,后来想想并不需要Item,所以将其去除。
 在第一次编写的时候,INIManager和Section都使用了Hashtable,但在第二次编写的时候将Section的Hashtable删除,换成了更底层的,直接与ini文件进行交互的方式。


总结:

 想要写点什么,前期准备很重要……一时兴起的话很容易埋下种种隐患。

最后的话:

①:【CSharp 学习笔记】关于使用字符串作为索引值的索引器

我的Github:WiiGenie/Juer.Tools,INIManager的源码就在那里。
第一次用Github呢……总觉得哪里怪怪的._.

原创粉丝点击