C#里将模型对象序列化成XML并存入Access库

 

即可以序列化成文本也可以序列化至文件.

 

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


namespace   CS.Common.Utility
{
        
///  <summary>
        
///  序列化与反序列化
        
///  FileName                        :        Serializer.cs      
        
///  Verion                          :              0.10
        
///  Author                          :              zhouyu   http://max.cszi.com
        
///  Update                        :              2007-10-22
        
///  Description            :              序列化与反序列化,主要用于将对象里的数据序列化成XML数据,用于存于文本或是数据库
        
///  Thanks                        :              小浩http://cs.alienwave.cn  )
        
///  </summary>

        public  class  Serializer
        
{
                
///  <summary>
                
///  将文件反序列化成对象
                
///  使用:BlogSettingInfo  info  =    (BlogSettingInfo)  Serializer.XmlDeserializerFormFile(typeof(BlogSettingInfo),  @"H:CSBlog.xml");
                
///  </summary>
                
///  <param  name="type">对象类型</param>
                
///  <param  name="path">文件路径</param>
                
///  <returns></returns>

                public  static  object  XmlDeserializerFormFile(Type  type,  string  path)
                
{
                        
return  new  XmlSerializer(type).Deserialize(new  XmlTextReader(path));
                }



                
///  <summary>
                
///  将字符串内容反序列化成对象
                
///  使用:BlogSettingInfo  info  =  (BlogSettingInfo)Serializer.XmlDeserializerFormText(typeof(BlogSettingInfo),config);
                
///  </summary>
                
///  <param  name="type">对象类型</param>
                
///  <param  name="serializeText">被序列化的文本</param>
                
///  <returns></returns>

                public  static  object  XmlDeserializerFormText(Type  type,  string  serializeText)
                
{
                        
using  (StringReader  reader  =  new  StringReader(serializeText))
                        
{
                                
return  new  XmlSerializer(type).Deserialize(reader);
                        }

                }



                
///  <summary>
                
///  将目标对象序列化成XML到文件中
                
///  </summary>
                
///  <param  name="target"></param>
                
///  <param  name="path"></param>

                public  static  void  XmlSerializerToFile(object  target,  string  path)
                
{
                        
//XmlTextWriter  writer  =  new  XmlTextWriter(path,  Encoding.UTF8);
                        StreamWriter  writer  =  new  StreamWriter(path);
                        
new  XmlSerializer(target.GetType()).Serialize((StreamWriter)writer,  target);
                        writer.Close();
                }



                
///  <summary>
                
///  将目标对象序列化成完整的XML文档
                
///  </summary>
                
///  <param  name="target"></param>
                
///  <returns></returns>

                public  static  string  XmlSerializerToXml(object  target)
                
{
                        
return  XmlSerializerToText(target,  false);
                }



                
///  <summary>
                
///  将目标对象序列化成XML文档内容(去除声明属性)
                
///  </summary>
                
///  <param  name="target"></param>
                
///  <returns></returns>

                public  static  string  XmlSerializerToText(object  target)
                
{
                        
return  XmlSerializerToText(target,  true);
                }



                
///  <summary>
                
///  将目标对象序列化成XML文档
                
///  </summary>
                
///  <param  name="target"></param>
                
///  <param  name="isText">是否去除声明属性</param>
                
///  <returns></returns>

                private  static  string  XmlSerializerToText(object  target,  bool  isText)
                
{
                        StringWriter  writer  
=  new  StringWriter();
                        
new  XmlSerializer(target.GetType()).Serialize((TextWriter)writer,  target);
                        StringBuilder  sb  
=  writer.GetStringBuilder();
                        writer.Close();
                        
if  (isText)
                        
{
                                sb.Replace(
"<?xml  version="1.0"  encoding="utf-16"?> ",  "");
                                sb.Replace(
"  xmlns:xsd="http://www.w3.org/2001/XMLSchema"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"",  "");
                        }

                        
else
                        
{
                                sb.Replace(
"utf-16",  "utf-8");
                        }

                        
return  sb.ToString();
                }


        }


  

}



 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值