保存和读取属性配置的技巧

发表于:2016-7-15 11:34

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:weepingdog    来源:51Testing软件测试网采编

  在编写程序时,我们常需要保存属性配置信息,例如某WinForm程序,点击“打开文件“按钮,会启动一个对话框,提示用户选择文件。如果用户不是第一次点击,将对话框启动路径设置为上次打开的路径,往往能节省用户的时间,提升程序使用体验。那么如何保存、读取属性配置信息呢?
  一个很容易想到的办法是建立一个配置文件,如Config.xml,来保存配置信息。这种办法一方面需要自己编写文件读写代码,实现起来麻烦,另一方面,由于配置文件与程序独立, 存在配置文件被用户误删除、误编辑的情况,可能会造成意想不到的后果。事实上,使用C#编写程序时,可以使用程序自带的属性配置功能。
  在C#项目"解决方案资源管理器"中,,有一个Properties节点,点击展开后,如下图所示
  双击Setting.settings后,出现一个编辑器,使用它可以创建、编辑、管理配置信息, 下面每一行为一条设置信息。
  每条信息包括名称(Name)、类型(Type)、范围(Scope)、值(Value)4个属性。
  · 类型可以是包括自定义类型的任何类型,为了 程序简单,一般情况下用简单类型为好。
  · 范围也称为“作用域”,有两种作用域,一种用户,一种应用程序。区别简单说,用户设置在程序启动后还可以改,配置本身被保存到User.config中, 而应用程序设置只能用来加载,只能通过修改与程序关联的.exe.config文件来更改设置。
  · 值为配置的实际内容。
  配置信息的使用
  · 读取
  this.OpenDir =  Properties.Settings.Default.OpenDir;
  · 保存
  Properties.Settings.Default.OpenDir = openDir;
  Properties.Settings.Default.Save();
  可以使用多组配置信息,添加方法是为项目添加新建项“配置文件”,然后编辑新的配置信息表。
  在程序设置阶段,可以从项目的Properties文件夹下看到一些有趣的东西,该文件夹下有5个文件,对应解决方案管理项的3个Item。
  观察Settings.Designer.cs文件,配置信息里的变量放在了*.Properties命名空间下,该命名空间里实现了Settings类。
  Settings类继承自System.Configuration.ApplicationSettingsBase,含有一个Settings类型的静态成员Default,该对象只实现了get方法,这是很容易理解的。
  其他成员均实现了get和set方法,很容易看出Settings类里重构了[]方法。由此,我们可以把{Name:Value}当成键值对,那么Settings中存在着一个字典。
  Settings.settings本质是一个xml文件,在编辑器里编辑配置时,可以发现该文件是和Settings.Designer.cs同步变化的。
  在Settings.Designer.cs里,将this.Save()写到set方法里,可以实现更频繁、实时的更新配置信息。而在Settings.Designer.cs外,可以在合理的位置使用Properties.Settings.Default.Save()方法,及时地保存配置信息。
  Resources.*文件保存了与资源有关的文件,AssemblyInfo.cs含有文件版本等信息。两者用途在其他地方。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号