zoukankan      html  css  js  c++  java
  • 动态【配置文件】之分析

      几乎所有的程序都会用到配置文件,我们对配置文件的需求只有2个,保存用户的选择,下次界面展示的时候还原。这是我们使用配置的唯一的也是最重要的目的,如果这点达不到,就应该放弃所采用的方式。目前,比较常用的配置文件方式有注册表、ini文件、xml,C#下常用的还有app.config或者Web.config文件,这个文件本质还是xml,只是fx封装了读写。

      我们需要讨论的是如何方便的读写配置文件,以及展示配置界面。所谓的“动态”是包含2个方面,其一指配置的内容是动态的,易于添加和删除的,这需要跟界面展示配合,其二,所配置的选项也是动态的,如下拉框的内容并不是设计期可以确定,而是在程序运行中来进行确定。当然,如果期望纯代码区维护,也是可以而且可行,只是太繁琐了。那有没有一种解决方案,可以达到这样的效果,当程序更新后,需要在配置文件中新增一个配置项时候,在界面展示的时候可以自动体现出来呢?今天我们就来探讨一下。

      第一、读写配置文件。我们可以设计一个类来管理配置文件中所有的节点,不妨定义为ConfigManager,它至少需要提供以下方法,增删改定位Section,增删改Key、KeyValue

    Section表示一个环节,Key表示一个设置项,KeyValue表示一个设置项的数值。任何一种配置文件几乎都能满足这些要求,我们采用了ini文件来进行,这样方便项目发布;

      第二、界面展示。由于要求为“动态”,所以,展示的界面就不能在程序内部定义。我们可以定义一个ConfigUiManager类,它需要保存和还原单个或者多个界面,我们的项目中涉及到的配置界面应该会有单个或者多个,如Office一样,可以集中设置,也可以单独在某项处理的时候弹出对应功能的设置界面。满足这样的需求,我们可以采用序列化的方式来进行,也可以采用SharpDev的方式,用xml来定义窗体控件和布局,然后在运行期来展示。

      第三、界面事件。如下拉框的选项,那么来源只有在运行期才能确定。这就需要用到脚本技术了,我们对此脚本的要求是运行期绑定事件和执行,目前我采用的是Lua脚本。当然,通过cs代码,然后运行期编译称dll然后加载执行,也是可行的方式,只是保密性差了点。

      第三、界面和配置文件的关联。我们需要把配置文件的设置反映到界面上,同时也需要把界面的设置保存到配置文件中。我们不妨定义为ConfigLinker。

     (未完待续...)

  • 相关阅读:
    权限、角色及架构 【转载】
    C#和SQL SERVER 实用工具推荐 『转载』
    创建自定义配置节点(web.config和app.config都适用)【转载】
    asp.net代码中尖括号和百分号的含义 <转载>
    为JavaScript程序添加客户端不可见的注释 【转载】
    C#中string[]数组和list<string>泛型的相互转换 【转】
    程序员从初级到中级10个秘诀 【转载】
    PowerDesigner 使用教程 【转载】
    【openstack N版】——网络服务neutron(flat扁平网络)
    【openstack N版】——镜像服务glance
  • 原文地址:https://www.cnblogs.com/feedback/p/1736332.html
Copyright © 2011-2022 走看看