ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 对象与XML之间互相转化的一个基类

对象与XML之间互相转化的一个基类

原创 Linux操作系统 作者:iDotNetSpace 时间:2009-02-23 16:26:08 0 删除 编辑

在实际开发过程中经常需要把一个对象保存到XML中,同时也需要把保存的XML转化为对象。随便代码很简单。是人都会。但经常写着这样的重复代码就想能不能有什么样的方法可以少写点代码呢。能不写当然最好了。经过摸索就写了下面这个小玩意

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Xml.Serialization;

namespace KSoft.ApplicationCommunication
{
    
public class XMLObject
    {
        
internal void ReadXml(string xml)
        {
            
object obj = null;
            StringReader reader 
= new StringReader(xml);
            
try
            {
                System.Xml.Serialization.XmlSerializer ser 
= new XmlSerializer(this.GetType());
                obj 
= ser.Deserialize(reader);
            }
            
finally { reader.Close(); }

            
//给This的属性赋值
            System.Reflection.PropertyInfo[] propertyThis = this.GetType().GetProperties();
            System.Reflection.PropertyInfo[] propertyObj 
= obj.GetType().GetProperties();
            
for (int i = 0; i < propertyThis.Length; i++)
            {
                propertyThis[i].SetValue(
this, propertyObj[i].GetValue(obj, null), null);
            }  
        }

        
public string ToXML()
        {
            System.IO.StringWriter writer 
= new System.IO.StringWriter();
            System.Xml.Serialization.XmlSerializer ser 
= new XmlSerializer(this.GetType());
            ser.Serialize(writer, 
this);
            
string strRet = writer.ToString();
            writer.Close();
            
return strRet;
        }
    }
}

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-557467/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-04

  • 博文量
    2376
  • 访问量
    5348052