• 使用wwAppConfiguration类库来轻松读写应用程序配置信息


    源代码按此下载,这个版本是以前从他的网站上down下来的,后来的版本1.2是收费的了,建议慎用! 2004-12-17

      在开发一个应用程序时,不论是C/S还是B/S,都需要将一些配置信息读到系统中,随时用户又可能更改了这些配置信息,然后又存回到配置文件中,以前Windows使用INI文件来管理这些配置信息,但现在到了XML时代,配置信息也要用XML,.NET中提供了ConfigurationSettings类来完成此工作,但功能简单,Building a better .NET Application Configuration Settings Class,该文中提出一套优秀的类库,完成了配置信息的读取、修改、保存、敏感内容的加解密等,而且使用了反射机制,非常重要的一点是实现这些功能,代码写起来很简单,强烈推荐有此需求的同好们一试。下面把我的使用过程简单描述一下,以下是以开发WinForm程序来讲的,原作者网站上有关于ASP.NET上使用此类库的说明:
      从网站上下载源代码,包内有一个.NET工程,关键是三个cs程序,wwAppConfiguration.cs,wwEncrypt.cs和wwUtils.cs。重点需要理解的是wwAppConfiguration类,是一个抽象类,你需要继承此类,就用MyConfig吧,把你需要读写的变量声明在其中就行了,当然,你也可以使用properties,只要public就行,代码如下:

    public class MyConfig : wwAppConfiguration 

        
    public string MyKey = "My Value"
    }

    简单,对,就是这样简单,为了程序的效率,你不用重复多次new MyConfig(),只需一次就行了,所以建一个App类,将Config声明为静态变量,同时写一个static初始化块(在JAVA中语法是static {...},在C#中不小心会认为是一个构造函数),注意Config.ReadKeysFromConfig(“myconfig.xml”)一行,如果省略此行,就是用默认的xml文件了,例如:对于myprog.exe程序,配置文件就是myprog.exe.xml,此xml文件在Visual Studio 2003开发环境\bin\debug目录中会被自动删除,对于调试不太方便,所以最好指定一个xml文件。

    public class App 

        
    public static MyConfig Config; 
     
        
    static App() 
        { 
            Config 
    = new MyConfig(); 
            Config.ReadKeysFromConfig(
    "myconfig.xml"); 
        } 
    }


      最后就是读写配置信息了,非常简单,读配置参数值的代码如下: 

    string myvalue = App.Config.MyKey;

    这里用的是string类型,由于它的类库中使用的是反射机制,所以对于int等类型,写法也是类似,不需要大量的Convert了,非常方便!!!写配置信息如下:

    App.Config.MyKey = myvalue;

    最后,你一般需要将所有的配置信息存回到原来的xml文件中,如下:

    App.Config.WriteKeysToConfig("myconfig.xml"); 

    完毕。对于一些重要的内容,如用户名,密码,数据库连接串等不希望用明文,可以使用加密存储,我还没研究,以后再写吧。



    ----==== Email: slofslb (GTD) qq.com 请将(GTD)换成@ ====----
    版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
    作者:申龙斌的程序人生

    ---- 魔方桥牌象棋、游戏人生...
    ---- BASIC、C++、JAVA、C#HaskellObjective-COpen Inventor、程序人生...
    ---- GTD伴我实现人生目标
    ---- 区块链生存训练
    ---- 用欧拉计划学Rust编程
    ---- 申龙斌的读书笔记(2011-2019)
    ----
  • 相关阅读:
    区块链技术基础
    理解数字货币
    MySQL-插入更新 ON DUPLICATE KEY UPDATE
    Flume-Failover Sink Processor 故障转移与 Load balancing Sink 负载均衡
    Flume-Replicating Channel Selector 单数据源多出口
    Flume-几种拓扑结构
    Flume-事务与传输流程
    Java-JPDA 概述
    Navicat Premium
    Flume-Taildir Source 监控目录下多个文件的追加
  • 原文地址:https://www.cnblogs.com/speeding/p/ReadWriteXmlConfig.html
Copyright © 2020-2023  润新知