自动化 object <-> xml

介绍了SpringFox类在.NET环境中实现object与XML间自动化转换的方法,及其与.NET Soap序列化的对比优势。通过AgileConfiguration类封装了配置文件的加载与保存功能。

   .NET提供了Soap序列化的方式可以实现 object <-> xml ,但是它有三个缺点:
(1)它要求object 必须打上[Serializable]标签,这是强侵入性的。
(2).NET的Soap序列化与程序集的版本紧密关联,如果object的class定义没有发生变化,而定义该class的程序集版本发生了变化,那么反序列化(xml->object)可能就会失败。
(3).NET的Soap序列化得到的xml中带有太多对我们来说无关紧要的信息,这使得xml结果的个头很大。

   ESBasic.Configuration.SpringFox类提供了更加灵活的 object <-> xml 自动化实现。SpringFox 用于将object 与 xml字符串相互转换。XML大纲遵循Spring.net的object配置大纲。
   (1)将转换object的类型的所有属性。
   (2)除了支持IList<>,将忽略其它集合和数组类型的属性。
   (3)可以转换内嵌的自定义简单类型,但不支持循环对象引用。

   下面是SpringFox类的类图。

   应用SpringFox的一个非常有用的场合就是配置文件(xml)与配置object之间的相互转换,有了SpringFox,我们不需要在手动打造解析和生成配置文件了。ESBasic.Configuration.AgileConfiguration类借助SpringFox封装好了这些功能,你的配置object只要从AgileConfiguration继承,就可以拥有自动化与XML之间同步信息的功能。

   静态的AgileConfiguration.Load 将读取XML配置文件并返回对应的配置Object,Save方法将当前的配置object保存到目标xml文件。
   比如我们的配置object的class定义如下,

     public   class  AppConfiguration : AgileConfiguration
    {
        
#region  Port
        
private   int  port  =   6600 ;
        
public   int  Port
        {
            
get  {  return  port; }
            
set  { port  =  value; }
        } 
        
#endregion

        
#region  ServerName
        
private   string  serverName  =   "" ;
        
public   string  ServerName
        {
            
get  {  return  serverName; }
            
set  { serverName  =  value; }
        } 
        
#endregion

        
#region  Url
        
private   string  url;
        
public   string  Url
        {
            
get  {  return  url; }
            
set  { url  =  value; }
        } 
        
#endregion
    }

   转换该类型的某个object成xml后的结果如下所示:

< object  type ="XmlFoxTest.AppConfiguration,XmlFoxTest" >
  
< property  name ="Port"  value ="6600"   />
  
< property  name ="ServerName"  value ="AppliactionSystem"   />
  
< property  name ="Url"  value ="http://www.springframework.net/"   />
</ object >

   最后给出一个使用ESBasic.Configuration.AgileConfiguration来进行配置的应用程序的例子,可以点击这里下载,运行一下例子,并研究一下源码,
你就知道如何使用ESBasic.Configuration.SpringFox和ESBasic.Configuration.AgileConfiguration了。ESBasic.dll可以从下载的源码的文件夹中获得。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值