首页 | IT新闻 | 硬件 | 操作系统 | 开发 | 网络编程 | 数据库 | 热门框架 | 网络安全 | 组网 | 建站指南 | 网页制作 | 特效 | 实用技巧 | 服务器 | 办公 | QQ | 探索 | 社区

  • 技术部落
  • 部落首页 > 网络编程 > XML > 正文
  • Xml串行话对象与反串行实例
      2007-11-1  来源:博客网  编辑:Jsbulo  热度:

    一个简单的例子,但是很实用。将对象直接串行话为xml文件,并可以反串行话为对象。

    方法:

    1using System;
    2using System.Collections.Generic;
    3using System.Text;
    4using System.IO;
    5using System.Xml;
    6using System.Xml.Serialization;
    7using System.Collections.ObjectModel;
    8
    9namespace XmlBuilder
    10{
    11 /**////


    12 ///
    13 ///

    14 public static class Localization
    15 {
    16 公有方法#region 公有方法
    17 /**////
    18 /// 序列化对象
    19 ///

    20 /// 文件信息名称
    21 /// 待序列化对象
    22 public static void SerializeObject(string fileName, object obj)
    23 {
    24 Stream writer = null;
    25 try
    26 {
    27 Type type = obj.GetType();
    28 XmlSerializer serializer = new XmlSerializer(type);
    29
    30 writer = new FileStream(fileName, FileMode.Create);
    31 serializer.Serialize(writer, obj);
    32 }
    33 catch(Exception ex)
    34 {
    35 throw ex;
    36 }
    37 finally
    38 {
    39 if(writer != null)
    40 writer.Close();
    41 }
    42 }
    43
    44 /**////
    45 /// 反序列化对象
    46 ///

    47 /// 文件信息名称
    48 /// 反序列化对象类型
    49 /// 返回实例化后对象
    50 public static object DeSerializeObject(string fileName, Type type)
    51 {
    52 if (!File.Exists(fileName))
    53 return null;
    54
    55 FileStream fs = null;
    56 try
    57 {
    58 fs = new FileStream(fileName, FileMode.Open);
    59
    60 XmlSerializer xSer = new XmlSerializer(type);
    61 XmlReader reader = new XmlTextReader(fs);
    62 return xSer.Deserialize(reader);
    63 }
    64 catch (Exception ex)
    65 {
    66 throw ex;
    67 }
    68 finally
    69 {
    70 if (fs != null)
    71 {
    72 fs.Close();
    73 }
    74 }
    75 }
    76 #endregion
    77 }
    78}
    79