使用配置文件(.settings、.config)存储应用程序配置

原文:使用配置文件(.settings、.config)存储应用程序配置

引言

我不知大家早先是如何保存应用程序配置,以备下次打开时使用的,反正我开始学.Net的时候就去研究序列化,以二进制或XML格式的序列化来保存应用程序配置。这样每次都要建立单独的配置类,并书写读写配置代码,相当麻烦。

期间也看了看.config文件的读写方式,感觉还是很麻烦,不如自己序列化来的踏实。

后来才猛然发现微软早提供好了settings,用以定义.config文件内容,并生成相应的强类型类,使用起来极其方便~,感觉就像在火星居住了半辈子突然发现还有地球这好地方*_*~

鉴于网上settings方面的资料不多、不详,我就以此文来介绍一下基本的用法,让小鸟们少走我那条破路,老鸟请直接从上空滑翔而过即可。

 

基本使用方法

首先建立一个WinForm项目,设计这样一个窗体:

通过“添加新项”功能添加一个MyApp.settings:

 

 

 

 

在打开的数据表格中做如下设置:

这样就设置好了a、b、c三个不同类型的配置变量,现在就可以在程序中使用它们了:

 

private void Form1_Load(object sender, EventArgs e)

{

    numericUpDown1.Value = MyApp.Default.a;

    textBox1.Text = MyApp.Default.b;

    checkBox1.Checked = MyApp.Default.c;

}

 

private void Form1_FormClosing(object sender, FormClosingEventArgs e)

{

    MyApp.Default.a = numericUpDown1.Value;

    MyApp.Default.b = textBox1.Text;

    MyApp.Default.c = checkBox1.Checked;

    MyApp.Default.Save();

}

 

通过上面的代码就可以在窗体开闭时分别加载、保存配置了。

运行抓图:

 

复杂数据类型支持情况

settings支持存储一些较为复杂的数据,比如Color、Size等类型,可以自行选择:

但并不是所有类型都可以支持,比如FileInfo类型就没有,泛型也没有,自定义类型更是不受支持的,如果需要存储这些特殊类型,就得用其他配置方案了。

 

读写复杂数据类型

我们以ArrayList类型为例,通过它在原程序的基础上实现记录每次关闭程序时间的功能。

首先添加一个配置变量d,其类型为System.Collections.ArrayList:

在窗体中增加一个ListBoxt,然后修改后台代码为:

高亮部分为新增的代码。

多次运行以测试:

 可以看到每次的程序关闭时间都被记录并显示。

 

“用户”和“应用程序”

你可能注意到数据表格中“范围”这里全是“用户”:

如果改成另外一个选项,即“应用程序”会怎样呢?

报错了,我们的配置变量变成只读的了,所以这里可以简单地把它们理解为:

用户=可读写

应用程序=只读

“应用程序”选项应当是用于设定一些程序运行所必须的重要变量,比如导航网址、数学运算参数等,这些配置项如果让用户篡改就会出问题了,所以要只读。

 

数据被存在哪里?

你可能会发现编译后在Debug目录中有个“SettingTest.exe.config”,但无论如何操作程序,这个配置文件里始终都是描述的默认配置。

其实数据是被存在了“C:\Users\SkyD\AppData\Local\”目录中(我这是Windows7,XP或以下版本可能不是这里)

我在“C:\Users\SkyD\AppData\Local\SettingTest\SettingTest.vshost.exe_Url_ffofch2tvz5bil2xbhdayqbnqwppy2ce\1.0.0.0”这个目录中找到了配置文件(user.config),这是其描述的配置信息:

 

结语

虽然settings无法实现对一些复杂类型及自定义类型的支持,但是在多数情况下,用它来存储程序配置已是绰绰有余了,在够用的前提下,不要重复造轮子啦。

下载示例项目:http://www.uushare.com/user/icesee/file/2017630

下载本文的XPS版本:http://www.uushare.com/user/icesee/file/2017629

时间: 2022-12-13

使用配置文件(.settings、.config)存储应用程序配置的相关文章

艾伟_转载:使用配置文件(.settings、.config)存储应用程序配置

引言 我不知大家早先是如何保存应用程序配置,以备下次打开时使用的,反正我开始学.Net的时候就去研究序列化,以二进制或XML格式的序列化来保存应用程序配置.这样每次都要建立单独的配置类,并书写读写配置代码,相当麻烦. 期间也看了看.config文件的读写方式,感觉还是很麻烦,不如自己序列化来的踏实. 后来才猛然发现微软早提供好了settings,用以定义.config文件内容,并生成相应的强类型类,使用起来极其方便~,感觉就像在火星居住了半辈子突然发现还有地球这好地方*_*~ 鉴于网上setti

asp.net 2.0 中加密web.config 文件中的配置节

asp.net|web|加密 在asp.net2.0中新增了对web.config中的部分数据进行加密的功能,可以使用RSAProtectedConfigurationProvider和DPAPIProtectedConfigurationProvider来加密,本文说明使用RSAProtectedConfigurationProvidert和计算机级别的密钥容器进行加密的步骤. 1.         首先确定要进行加密的web.config中的配置节是否可以加密 2.         创建RS

认识ASP.NET配置文件Web.config

asp.net|web 一.认识Web.config文件 Web.config文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中.当你通过VB.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置.如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文

DotText源码学习——从配置文件Web.config入手(一)

概述 ASP.NET配置数据存储在名为 Machine.config/Web.config的XML文本文件中,Web.config文件可以出现在ASP.NET应用程序的多个目录中.由于 这些文件将应用程序配置设置与应用程序代码分开,可以方便地设置与应用程序关联.正是因为配置文件中存储着关于整个应用程序的设置,当我读一个陌生项目的 源码时,经常把它作为入口. 我将从以下几点分析ASP.NET配置文件: ASP.NET配置文件的层次结构 Machine.config和根Web.config配置文件

ASP.NET配置文件Web.config用法详解_实用技巧

本文实例讲述了ASP.NET配置文件Web.config用法,分享给大家供大家参考.具体分析如下: 一.认识Web.config文件 Web.config文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中.当你通过VB.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的   Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设

异常详细信息: System.InvalidOperationException: 在应用程序配置中未找到连接名“testConnectionString3”或者连接字符串为空。

问题描述 大家好,小弟在用asp.net时遇到以下问题:向页面增加一个DropDownList控件时,使用数据绑定连接到数据库,在vs2005测试中能够顺利进行,但是发布到iis上,就不能运行.报错:"/test"应用程序中的服务器错误.--------------------------------------------------------------------------------在应用程序配置中未找到连接名"testConnectionString3"

[VB.NET+XML]完成简单程序配置

xml|程序   简单的一个应用例子 ,只是简单的操作XML文件,在实际的应用上可以先建一个配置类保存状态. XML文件的结构: 1 <?xml version="1.0" encoding="utf-8" ?> 2  <config>3  <Function Name="a" Checked="false" /> 4  <Function Name="b" Che

WASD Tools for Eclipse开发和运行适于Liberty配置文件的数据访问应用程序

使用 WebSphere Application Server Developer Tools for Eclipse开发和运行适用于Liberty配置文件的数据访问应用程序 简介 Liberty 配置文件是 IBM WebSphere Application Server V8.5 中的一个动态的.可组合的配置文件,为 Web 应用程序提供了一个简化的轻型运行时环境.通过使用一个插入目录,或者将应用程序添加到服务器配置中,Liberty 配置文件还提供了快速部署应用程序的功能.Liberty

使用JAXB来实现Java程序配置的简单方法

程序的自定义设置是一个重要的功能,大多数程序都会提供自定义配置的方法,提供用户根据个人喜好.运行环境来配置软件的使用方式.程序的配置方式存在多样性,一般会采用windows格式的ini配置文件或者注册表方式,java格式的properties属性文件,随着xml文件在程序开放中的普及,也有越来越多的配置开始使用xml的文件方式,例如java EE中的部署描述文件. 我们知道,在java中存在很多xml的处理方式,xml组织的dom.sax方法,apache以及sun官方都提供的众多的实现,也有很