返回

如何让你的系统配置文件更合理

发布时间:2022-10-03 05:11:11 327
# 数据库# 服务器# 数据# 服务器# 信息

将系统中全局的,容易发生变化的数据,但调用频繁的常量信息存储在文件中是个不错的选择,原因有以下几点:

1 由于操作频繁,放在文件里可以减低数据库的负载

2 由于信息是全局的,所以放在文件中,对于所有层都可以开放

3 由于它容易发生变化 ,所以写死在代码中,不是一个聪明的作法,放在文件中可以不用编译,就可以使信息同步到程序上

4 操作频繁,放在文件中,这事实上对于服务器的CPU来说不是一件好事,所以,在这里将会对它进行缓存,本例没有使用cache

实现:一个VConfig层,进行公用配置信息管理和配置功能代码管理

 

如何让你的系统配置文件更合理_数据

​​

Entity目录下是所有公用信息的实体,webconst.cs文件表示系统公用信息实体

ConfigFilesManager类型,是对配置文件进行读写操作的类

ConfigSerialize类型,提供了对文件序列化和反序列化操作的类

IConfiger接口,它是所有配置实体的基接口

WebConstConfig类型,对webconst实体进行了读写操作的类,这本类中,提供了从文件中使用了Elapsed事件,来实现每隔一段时间去文件中读取最新数据

这是它的核心代码:

///
/// 静态构造函数初始化
/// 
static WebConstConfig()
{
cfm = new ConfigFilesManager(ConfigFilePath, typeof(WebConst));
baseConfig = (WebConst)cfm.LoadConfig();
baseConfigTimer.AutoReset = true;
baseConfigTimer.Enabled = true;
baseConfigTimer.Elapsed += new ElapsedEventHandler(Timer_Elapsed);
baseConfigTimer.Start();
}

#endregion

#region 重设配置类实例
///
/// 重设配置类实例
/// 
public static void ResetConfig()
{

baseConfig = (WebConst)cfm.LoadRealConfig();
}

private static void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
ResetConfig();
}
对于 VConfig这个项目,我会在以后的开发中进一步的完善,因为,在开发一个新项目时,我不希望去修改我的vconfig项目,只从vconfig项目中去派生就可以了,在自己的新项目中去重写和扩展自己的业务逻辑。

 

感谢大家!

作者:仓储大叔,张占岭,
荣誉:微软MVP

 

 

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线