利用.settings配置文件存储应用程序配置

开发 后端
这里将介绍一下如何利用.settings配置文件存储应用程序配置,希望通过斯克迪亚的这篇文章能对大家的.NET开发之路,有所帮助。

保存好.settings配置文件,也就实现了存储应用程序配置,这样就不用在下次还要配置.settings配置文件。本文不光介绍了.settings配置文件,同时也讲解了一下.config文件,希望对大家有所帮助。

引言

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

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

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

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

基本使用方法

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

建立一个WinForm项目 

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

 添加新项

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

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

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

  1. private void Form1_Load(object sender, EventArgs e)  
  2. {  
  3.     numericUpDown1.Value = MyApp.Default.a;  
  4.     textBox1.Text = MyApp.Default.b;  
  5.     checkBox1.Checked = MyApp.Default.c;  
  6. }  
  7. private void Form1_FormClosing(object sender, FormClosingEventArgs e)  
  8. {  
  9.     MyApp.Default.a = numericUpDown1.Value;  
  10.     MyApp.Default.b = textBox1.Text;  
  11.     MyApp.Default.c = checkBox1.Checked;  
  12.     MyApp.Default.Save();  

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

运行抓图:

image 

复杂数据类型支持情况

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

image 

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

#p#

读写复杂数据类型

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

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

添加一个配置变量d 

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

增加一个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配置文件无法实现对一些复杂类型及自定义类型的支持,但是在多数情况下,用它来存储程序配置已是绰绰有余了,在够用的前提下,不要重复造轮子啦。

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

链接:http://skyd.cnblogs.com/

【编辑推荐】

  1. C#读取配置文件详解
  2. ASP.NET配置设置的范围浅析
  3. 认识ASP.NET配置文件Web.config
  4. ASP.NET 应用程序依赖machine.config的配置
  5. Windows 7下配置.NET开发环境及激活
责任编辑:彭凡 来源: 博客园
相关推荐

2020-10-14 15:05:02

React应用程序

2021-09-26 08:30:31

Python应用程序代码

2024-03-18 09:00:00

Java配置文件引导优化开发

2009-07-29 17:01:13

2012-06-07 09:15:14

ibmdw

2010-12-28 16:35:32

Outlook 配置文

2010-03-18 18:17:01

Python 配置文件

2011-09-08 16:07:13

Widget配置文件

2021-08-13 13:55:03

鸿蒙HarmonyOS应用

2010-02-23 14:17:20

WCF配置文件

2011-01-13 16:27:26

Linux配置文件

2011-01-19 14:00:21

2009-06-19 13:45:53

Java应用程序Jfreechart

2010-12-27 14:59:31

Outlook 配置文

2021-07-08 21:19:04

BashLinux

2011-12-02 14:17:51

Java

2009-06-17 14:10:30

Spring配置文件

2009-09-22 10:23:15

Hibernate配置

2010-08-05 14:36:07

NFS服务

2011-02-25 16:39:34

proftpd配置文件
点赞
收藏

51CTO技术栈公众号