在程序开发过程中,经常需要用到配置文件来存储一些用户信息或者程序信息,接下来简单介绍一下常用的几种配置文件。
常用的配置文件主要有:.ini文件、.config文件、.xml文件、.settings文件。
简单介绍各类型文件
一、.ini文件
.ini 文件是Initialization File的缩写,即初始化文件,是Windows的系统配置文件所采用的存储格式,统管Windows的各项配置,一般用户就用Windows提供的各项图形化管理界面就可实现相同的配置了。但在某些情况,还是要直接编辑.ini才方便,一般只有很熟悉Windows才能去直接编辑。
格式
ini文件由节、键、值组成。
[section]
name=value
注释
使用分号表示(;)。在分号后面的文字,直到该行结尾全部为注释
作用
在Windows系统中,INI文件很多,最重要的就是“System.ini”、“System32.ini”、“Win.ini”。该文件主要存放用户所做的选择以及系统的各种参数。用户可以通过修改INI文件,来改变应用程序和系统的很多配置
详细介绍见百度ini文件
二、.config文件
config文件,在开发过程中,未编译之前叫做App.config,编译之后如果项目为类库,则名称为“类库名.dll.config”;如果为应用程序,则名称为“应用程序名.exe.config”。一般存储程序的数据库连接字符串,应用程序相关配置等等。.config配置文件的根节点是configuration。我们经常使用的是appSettings。
格式
1、connectionStrings配置节
示例:
<connectionStrings>
<add name = "ConnectionString" connectionString = "数据库连接字符串" />
</connectionStrings>
2、appSettings配置节
示例:
<appSettings>
<add key = "name" value = "" />
</appSettings>
注释
<!-- 注释内容-->
三、.xml文件
可扩展标记语言(XML)与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML的宗旨传输数据的,而与其同属标准通用标记语言的HTML主要用于显示数据。事实上XML与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。
XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。
格式规范
1、 XML文档声明
表示该文档是一个XML文档,以及遵循哪个XML版本的规范。
规范:
文档声明在XML文件中是可选的第一项,推荐在每个XML文档中都包含文档声明。如果在XML文件中写出了声明就必须包含version属性,表示XML的版本,截止目前XML只有一个版本,即1.0。在XML声明之前不许有任何内容,包括空格。
示例:<?xml version="1.0" encoding="UTF-8"?>
2、元素
XML的基本组成单位是元素,元素由标记来定义,标记包括起始标记<>和结束标记</>,属性要写在起始标记内。在XML中,所有元素必须有结束标记。
语法样式:
<元素名 属性名=“属性值”>
元素内容
</元素名>
元素内容可以是其他元素标记、简单的文本、没有任何信息、其他元素标记和文本内容的混合等。
注释
<!--注释内容-->
常见应用
①作为配置文件
②充当小型数据库
③程序间数据传输
四、.settings文件
在Visual Studio中,该文件定义为程序“设置文件”。右键对应项目-->点击添加-->新建项,找到名称为“设置文件”,即为.settings文件。VS为其提供图形化界面对设置进行增删改,如下图所示:
其中名称为自定义,settings支持保存多种数据类型的数据,可从下拉框中选择对应类型,范围分为:用户和应用程序,值为初次使用默认加载的值。
在该管理页面添加的所有设置,对应到程序中即为Settings类实例的属性,用户可通过“命名空间.Settings.default.”访问对应的属性。
格式
settings文件为图形化工具编辑,保存编辑后自动生产相关配置信息,如:在A项目中添加设置文件,增加相关设置字段后,VS自动生成与该设置文件对应的配置信息到A项目中的App.config中,项目编译后,该配置信息可在A.dll.config或A.exe.config中找到。如下图所示:
说明
1、访问修饰符
分为两种:Internal和public。Internal表示该设置文件中的属性只能在其所在的程序集中访问。public表示该设置文件中的属性可以在其他的程序集中访问。
2、范围
范围用户可选择的值有两种:用户和应用程序。用户表示该属性既可以get又可以set,一旦该属性值被修改并保存后,新的值将被保存到当前系统登录用户的用户文件夹下,程序下次运行即自动加载该用户的用户设置,不再加载程序的默认设置,当然如果用户找到该设置文件并删除后,程序找不到该文件后即加载该属性的默认值;而应用程序则表示该属性只能被get,不能被set,因此属性针对的有效范围为整个程序而不是用户。
3、值
当用户选择对应的类型后,值单元格会自动变为该类型的默认值或者空。
4、查看代码
点击查看代码,VS即自动生成该类的实现,如下图所示:
其中红色框部分为后来手动编写代码,表示该类的任何一个属性值发生变化之后,将新的值保存为用户配置。如需做其他操作,通过注册相应的事件即可。
以下是个人对这几种配置文件的使用场景分析
1、ini配置文件
该类型的配置文件由于其添加、修改、读取方便的特点,多应用于配置信息需要频繁修改的场景,如程序不同登录用户对其做的自定义配置等等。
ini文件也有其不足的地方:由于其保存的格式为键值对应的形式,并且程序读取后值为string类型,因此通常需要开发人员对其做强制类型转换,对于频繁读取并进行强制类型转换的配置不建议使用ini文件。
2、config文件
桌面应用程序和控制台应用程序一般默认具有App.config文件,通常在此文件中保存数据库连接字符串和其他自定义配置信息用于程序加载时使用,在程序运行过程中一般不对该类型文件的配置进行修改。
3、xml文件
通常使用xml文件来存储一些程序运行过程中需要动态使用但是又不会对其增加或修改的数据,这些数据一般能够进行分类、具备诸多属性等等。通过与其他类型的配置文件信息共同使用,实现程序的拓展性。
4、settings文件
settings设置文件,一般在软件开发过程中定义配置字段,该类型配置信息一般具有频繁修改,频繁读取且类型不唯一特点。由于使用此配置时,无需进行数据的类型转换操作,因此较其他几种类型的配置文件读写更便捷。