Xml 串行话对象与反串行实例

来源:岁月联盟 编辑:zhuzhu 时间:2007-10-31
一个简单的例子,但是很实用。将对象直接串行话为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