1 public class XMLHealper
2 {
3 /// <summary>
4 /// 将自定义对象序列化为XML字符串
5 /// </summary>
6 /// <param name="myObject">自定义对象实体</param>
7 /// <returns>序列化后的XML字符串</returns>
8 public static string SerializeToXml<T>(T myObject)
9 {
10 if (myObject != null)
11 {
12 XmlSerializer xs = new XmlSerializer(typeof(T));
13
14 MemoryStream stream = new MemoryStream();
15 XmlTextWriter writer = new XmlTextWriter(stream, Encoding.UTF8);
16 writer.Formatting = Formatting.None;//缩进
17 xs.Serialize(writer, myObject);
18
19 stream.Position = 0;
20 StringBuilder sb = new StringBuilder();
21 using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
22 {
23 string line;
24 while ((line = reader.ReadLine()) != null)
25 {
26 sb.Append(line);
27 }
28 reader.Close();
29 }
30 writer.Close();
31 return sb.ToString();
32 }
33 return string.Empty;
34 }
35
36 /// <summary>
37 /// 将XML字符串反序列化为对象
38 /// </summary>
39 /// <typeparam name="T">对象类型</typeparam>
40 /// <param name="xmlContent">XML字符</param>
41 /// <returns></returns>
42 public static T DeserializeToObject<T>(string xmlContent)
43 {
44 T myObject;
45 XmlSerializer serializer = new XmlSerializer(typeof(T));
46 StringReader reader = new StringReader(xmlContent);
47 myObject = (T)serializer.Deserialize(reader);
48 reader.Close();
49 return myObject;
50 }
51
52 public static T RreadXML<T>(string filePath)
53 {
54 return DeserializeToObject<T>(FileHelper.ReadFile(filePath));
55 }
56 public static bool WriteXML(string xmlContent,string filePath)
57 {
58 return FileHelper.WriteFile(xmlContent, filePath);
59 }
60 public static bool WriteXML<T>(T contentModel,string filePath)
61 {
62 string xmlContent = SerializeToXml<T>(contentModel);
63 return FileHelper.WriteFile(xmlContent, filePath);
64 }
65
66 }