在C#应用中设计自己的配置文件

在系统开发的过程中,我们总是需要使用配置文件来保存一些我们需要保存的系统参数, 毕竟这是.Net时代,如果再使用注册表那就显得复杂了,毕竟操作注册表的API并不是哪么容 易理解的。

所以在.net应用程序中,都默认出现一个App.Config(对于 Web应用程序 是Web.Config)我们可以将系统运行所需要的参数采用加密或者明文的方式保存在这个文件 中。但是当我们需要大量的,并且有一定逻辑结构的数据,希望也能够保存到配置文件中, 此时我们可能这样做:将这些数据构造成DataSet,然后使用DataSet.WriteXML直接写成XML 文件,读取的时候直接使用DataSet.LoadXML。另外一种方式就是直接操作XML数据,使用 XmlDocument。

第一种方法虽然是好,因为我们可以想操作数据库表一样操作我们的 结构化的数据,可是在某些情况下,总觉得怪怪的。并且增加列等等这些的操作觉得及其难 受。特别是我们需要使用这些数据的时候,我们首先要去读文档,了解DataSet中的每个表以 及每个字段的含义,所以此方法不可取。

那第二种方法呢,这个更不可取。如果我们 增加了某个字段,或者修改了数据的机构,那我们的代码修改起来是在也是比较复杂的事情 。

那有什么更好的方式来解决这个问题的呢?

既然微软可以使用App.Config 和Web.Config,可以使用ComfigManager来对这两个配置文件来进行管理,让我们非常方便地 进行使用,那我们为何不可设计自己的ConfigManager呢?

需求:我们这里以菜单结 构作为例子来描述我们的想法。

菜单,包括主菜单项,比如系统里面的“文件 ”,“编辑”等等,包括子菜单,比如“文件”下的“保 存”,“另存为”等,子菜单下也包括下级子菜单。总之这是一个完全结构 化的数据格式,当然使用菜单来举例主要是这东西我们每天都见到,所以很容易理解,如:

public class Menu
{
  private string _Name;
   private string _Text;
  private string _IconName;
  //...这里可能还 有其他你需要变量
  private SubMenus _SubMenus;
  /// <summary>
  /// 注意,一定需要一个无参数的构造函数,否则序列化的时候 出错
  /// </summary>
  public Menu()
    : this ("", "", "")
  { }
  public Menu (string name, string text, string iconname)
  {
    this._Name = name;
    this._Text = text;
    this._IconName = iconname;
    this._SubMenus = new SubMenus();
  }
  /// <summary>
  /// 菜单名
  /// </summary>
   [XmlAttribute("Name")]
  public string Name
  {
     get { return this._Name; }
    set { this._Name = value; }
   }
  /// <summary>
  /// 菜单Text
  /// </summary>
  [XmlAttribute("Text")]
  public string Text
  {
    get { return this._Text; }
    set { this._Text = value; }
  }
  /// <summary>
  /// 菜单的 图标名
  /// </summary>
  [XmlAttribute ("IconName")]
  public string IconName
  {
     get { return this._IconName; }
    set { this._IconName = value; }
  }
  /// <summary>
  /// 子菜单
  /// </summary>
  public SubMenus SubMenus
  {
    get { return this._SubMenus; }
    set { this._SubMenus = value; }
  }
}

时间: 2024-08-14 22:53:02

在C#应用中设计自己的配置文件的相关文章

QSettings读写注册表、配置文件

简述 一般情况下,我们在开发软件过程中,都会缓存一些信息到本地,可以使用轻量级数据库sqlite,也可以操作注册表.读写配置文件. 关于QSettings的使用前面已经介绍过了,比较详细,见"更多参考",下面介绍下QSettings常用功能-读写注册表.配置文件. 简述 优点 读写注册表 一般存储 一般读取 分目录存储 替换applicationName 分组 读写配置文件 一般存储 一般读取 分组存储 分组读取 分目录存储 删除内容 疑问解释 更多参考 优点 无需指定注册表路径 一般

如何在Dreamweaver中设计首页

  一.网站设计思路 每个网页开始前,一般要在Firworks或在Photoshop等图像设计软件中设计好基本页面设计,图4-1-1就是Photoshop中设计好的基本页面设计图. 图4-1-1 Doking's BLOG基本页面设计图 在图4-1-1中序号①画上红色方圈部分的是网页的左边栏目,目前是空白的,它的栏目在以后章节中会一一添加上去的,序号②画上红色方圈部分的是网站的导航条,它是由第三章建立的dkblog.mdb数据库中的LM表动态生成的.基本思路已清楚后,开始构建立网站的模板. 二.

Linux Bash的环境配置文件

当用户登陆时,将读取以下两个配置文件: 1)/etc/profile:系统全局配置文件,最好不要修改该文件 2)~/.bash_profile或~/.bash_login或~/.profile:用户私有的配置文件 全局配置文件 - /etc/profile /etc/profile会依次调用下列文件: 1)/etc/inputrc 2)/etc/profile.d/*.sh:如果你需要帮所有用户设置一些共享的命令别名时,可以在这个目录下创 建扩展名为.sh的文件 3)/etc/sysconfig

解决spring jpa中配置文件报&#039;jpa:repositories&#039;的问题

一.问题描述     使用spring jpa,报no declaration can be found for element 'jpa:repositories'错误的解决方案     Multiple annotations found at this line: - cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'jpa:reposi

如何优化Urchin配置文件数据库的磁盘空间

Urchin 的报告数据存储在各个配置文件所独有的每月数据库中(注:Urchin分析后的数据是按月归档),这些数据库一般位于 Urchin 的 data/reports 目录下.每个配置经过处理的数据库大小为原日志大小的5% 至10%. 默认情况下,Urchin 会保留每月的这些配置文件数据库,但经过长时间的数据积累数据量会变大,导致Urchin处理后的数据占用空间越来越大,并且在用户查看时也会降低Urchin的响应效率.因此,需要优化Urchin 配置文件每月数据库的磁盘存储空间. 优化 Ur

Ibatis XML 配置文件注释引起错误及解决方案

Ibatis XML 配置文件注释引起错误及解决方案 最近在使用Ibatis组件进行一个项目开发,在运行时发现提示如下错误信息: type 异常报告 消息 描述服务器遇到一个内部错误 (), 无法完成此请求. 异常 javax.servlet.ServletException: java.lang.ExceptionInInitializerError根本原因 java.lang.ExceptionInInitializerError根本原因 java.lang.RuntimeException

Nginx配置文件详细说明

在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络. #运行用户 user www-data;     #启动进程,通常设置成和cpu的数量相等 worker_processes  1; #全局错误日志及PID文件 error_log  /var/log/nginx/error.log; pid        /var/run/nginx.pid; #工作模式及连接数上限 events {     use   epoll;             #epoll是多

水星路由器怎么进行备份 水星路由器备份配置文件方法

水星路由器怎么备份?有时候,为了防止宽带账号与密码忘记,我们通常都会通过备份路由器配置文件,方便今后还原.比如春节期间,小编将工作地的无线路由器带回了家临时使用,到老家后需要重新配置上网账号,为了防止工作地的宽带账号与密码忘记或丢失,小编将此前的路由器配置进行了备份,方便春节后回到工作地后再恢复. 话不多说,今天电脑网管之家小编为大家带来的主题是水星路由器备份配置文件与恢复方法,感兴趣的朋友,快来看看吧. 水星路由器怎么备份?方法步骤 一.首先需要登录水星路由器设置管理界面,先在电脑浏览器中,打

虚拟化-xen4如何通过配置文件添加pci设备

问题描述 xen4如何通过配置文件添加pci设备 操作系统为CentOS6.5 配置文件路径为/var/lib/xend/domains/虚拟机UUID/config.sxp 通过xm creat命令创建半虚拟化虚拟机 如何在该文件中添加PCI设备呢?PCI设备的设备号为05:0.0