您的位置:首页 > 产品设计 > UI/UE

【小玩意儿】使用C#的“贫血模型”快速配置组件QuickConfig

2012-05-06 22:20 309 查看
一个程序,免不了的一件事就是做运行时配置。.Net平台原生的配置就是使用App.config。但是这种方式配置起来并不十分的灵活,而且是文本文件,不适合存储一些较为敏感的信息。

园子中也有很多博主发表过关于“快速配置文件”的文章,使用的是“序列化”和“反序列化”相关的知识。但是,仅仅给出了一个简单的实现,并不能复用。由于我经常性的会遇到需要给软件加一个配置文件的问题,于是就花费了一点时间,制作了一个QuickConfig组件,分享给大家。如果代码什么的有不对的地方,欢迎大家指出。

先说说QuickConfig的特点:

基于贫血模型:如果你的程序已经有了配置文件,并且为这个配置做了一个实体类来方便管理,那么,如果要QuickConfig,您只需要做很少的变更即可。

实时更新配置:如果在软件运行时,您手动修改了配置文件,那么这个修改是会立即反映到程序中的。

默认配置支持:任何一项配置,都会有一个默认值,对吧?

配置文件容错:如果客户不小心把配置文件搞丢了,或者弄坏了,那么软件就不能运行了吗?No,No,No。软件可以基于默认配置继续运行。

配置操作方便:可以随时从文件中读取配置,或者把配置保存,或者重置为默认值。(调用相应的方法即可)。

自定义序列化方式:组件默认提供XML序列化,您可以自己定义序列化方式。比如Json。

配置加密支持:通过自定义序列化方式,可以对流加密,自然就可以对配置文件加密。

自定义配置文件文件名:配置文件保存在程序的运行目录,默认是一个以配置类全名为文件名的xml文件。您也可以自己定义文件名。

是不是有些心动了呢?下面就让我们从实例入手吧!

首先,创建一个配置实体,定义好属性后,在构造函数中,写入配置默认值:(记得加入Serializable特性)

恢复默认值

class Program
{
static void Main(string[] args)
{
var cfm = QuickConfigManagement<AppConfig>.Create();
Console.WriteLine(cfm.ConfigModel.AppName);//Soar Brain Burst
cfm.Reset();//配置设为默认值
Console.WriteLine(cfm.ConfigModel.AppName);//Brain Burst
/*
* 在调用Reset之后,
* 实体配置并不会被写入配置文件。
* 要想写入配置文件,
* 需要调用Save方法。
*/
cfm.Save();
}
}


长出一口气。终于完成了。这是我第一次在博客园中分享自己写的组件,如果大家有什么意见,欢迎提出。QuickConfig的下载地址是:http://files.cnblogs.com/Soar1991/QuickConfig.7z

由于一些原因,文件中只有组件,没有例子,劳烦大家手敲吧。(*^__^*) 嘻嘻。喜欢的话,劳烦大家给个支持。谢谢~!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: