通用类 对象和XML互转

 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     }

 

posted @ 2018-09-03 17:40  个人天使  阅读(138)  评论(0编辑  收藏  举报