.Text与Duwamish配置持久化方法比较

 

Duwamish的配置持久化实现方法已在《Duwamish配置持久化学习笔记》中介绍过了,这里不再重复。

Duwamish配置持久化方法的优点是web.config的设置方法较简单,只需要创建一个section,然后在section段中加入相应的key,例如:

< testSection >
   
< add  key ="testApp.Config.a"  value ="2" >
   
< add  key ="testApp.Config.b"  value ="str" >
</ testSection >


但是这种方法会加大上层的维护量,因为要为每一个section配一个IConfigurationSectionHandler接口的实现类,每一段代码中都要重写create()方法,增加了冗余代码。另外,如果要对这些配置进行管理,就必须写一些用于将配置分类的类,如testApp.Config,一旦需要加入一个参数,就必须更新section类和配置分类的类。

.Text的配置持久化方法与Duwamish有类似之处,.Text同样利用System.Configuration.ConfigurationSettings来读取设置,但不同的是,Duwamish在Application_Start事件中调用GetConfig,而.Text是在每一次需要读取设置时调用GetConfig,因此相对来说.Text的配置读取效率较低。

.Text也使用了IConfigurationSectionHandler接口,但该接口不是在section类中实现的,而是单独实现的,这个接口的实现在Dottext.Framework.Util.XmlSerializerSectionHandler中,它的create()方法与duwamish不同,其返回的是一个反序列化类,这个类会在调用GetConfig()时,转换为特定的section,注意这不是自动的,而是用代码实现的:

         public   static  BlogConfigurationSettings Settings
        
{
            
get
            
{
                
return ((BlogConfigurationSettings)ConfigurationSettings.GetConfig("BlogConfigurationSettings"));
            }

        }


以上代码,把返回的反序列化类转换为BlogConfigurationSetting,BlogConfigurationSetting是一个可序列化的类,我们可以在它的代码中看到[Serializable]标志和一些Xml标志。

这样做将有利于上层代码结构与配置文件结构保持一致,并且如果添加一个设置项,只需要修改相应的Section类就可以了,而不需要像duwamish那样修改两个(section类和用于对配置进行分类的类)。但.Text配置持久化的一个缺点是修改配置文件时要十分注意,要有相当的序列化之时才能成功完成配置。

以上是我对两者的比较,如果有什么错误,还请指出。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值