配置文件

        在程序开发过程中,经常需要用到配置文件来存储一些用户信息或者程序信息,接下来简单介绍一下常用的几种配置文件。

        常用的配置文件主要有:.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为其提供图形化界面对设置进行增删改,如下图所示:

Visusal Studio中.settings图形化管理页面

        其中名称为自定义,settings支持保存多种数据类型的数据,可从下拉框中选择对应类型,范围分为:用户和应用程序,值为初次使用默认加载的值。

        在该管理页面添加的所有设置,对应到程序中即为Settings类实例的属性,用户可通过“命名空间.Settings.default.”访问对应的属性。

格式

settings文件为图形化工具编辑,保存编辑后自动生产相关配置信息,如:在A项目中添加设置文件,增加相关设置字段后,VS自动生成与该设置文件对应的配置信息到A项目中的App.config中,项目编译后,该配置信息可在A.dll.config或A.exe.config中找到。如下图所示:

settings设置在App.config中生成的文本

说明

        1、访问修饰符

        分为两种:Internalpublic。Internal表示该设置文件中的属性只能在其所在的程序集中访问。public表示该设置文件中的属性可以在其他的程序集中访问。

        2、范围

        范围用户可选择的值有两种:用户应用程序。用户表示该属性既可以get又可以set,一旦该属性值被修改并保存后,新的值将被保存到当前系统登录用户的用户文件夹下,程序下次运行即自动加载该用户的用户设置,不再加载程序的默认设置,当然如果用户找到该设置文件并删除后,程序找不到该文件后即加载该属性的默认值;而应用程序则表示该属性只能被get,不能被set,因此属性针对的有效范围为整个程序而不是用户。

        3、值

        当用户选择对应的类型后,值单元格会自动变为该类型的默认值或者空。

        4、查看代码

        点击查看代码,VS即自动生成该类的实现,如下图所示:

Settings类

        其中红色框部分为后来手动编写代码,表示该类的任何一个属性值发生变化之后,将新的值保存为用户配置。如需做其他操作,通过注册相应的事件即可。

以下是个人对这几种配置文件的使用场景分析

        1、ini配置文件

        该类型的配置文件由于其添加、修改、读取方便的特点,多应用于配置信息需要频繁修改的场景,如程序不同登录用户对其做的自定义配置等等。

        ini文件也有其不足的地方:由于其保存的格式为键值对应的形式,并且程序读取后值为string类型,因此通常需要开发人员对其做强制类型转换,对于频繁读取并进行强制类型转换的配置不建议使用ini文件。

        2、config文件

        桌面应用程序和控制台应用程序一般默认具有App.config文件,通常在此文件中保存数据库连接字符串和其他自定义配置信息用于程序加载时使用,在程序运行过程中一般不对该类型文件的配置进行修改。

        3、xml文件

        通常使用xml文件来存储一些程序运行过程中需要动态使用但是又不会对其增加或修改的数据,这些数据一般能够进行分类、具备诸多属性等等。通过与其他类型的配置文件信息共同使用,实现程序的拓展性。

        4、settings文件

        settings设置文件,一般在软件开发过程中定义配置字段,该类型配置信息一般具有频繁修改,频繁读取且类型不唯一特点。由于使用此配置时,无需进行数据的类型转换操作,因此较其他几种类型的配置文件读写更便捷。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容