1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.IO;
6 using System.Xml.Serialization;
7 using System.Web.Script.Serialization;
8
9 namespace CiWong.Admin.Common.Extensions
10 {
11 /// <summary>
12 /// 序列化帮助类
13 /// </summary>
14 public class SerializerHelper
15 {
16 /// <summary>
17 /// xml序列化
18 /// </summary>
19 /// <typeparam name="T">对象类型</typeparam>
20 /// <param name="obj">要序列化的对象</param>
21 /// <param name="strPath">保存的路径</param>
22 public static void XmlSerializer<T>(T obj, string strPath) where T : class
23 {
24 FileStream fs = new FileStream(strPath, FileMode.Create);
25 XmlSerializer xs = new XmlSerializer(typeof(T));
26 xs.Serialize(fs, obj);
27 fs.Close();
28 }
29
30 /// <summary>
31 /// xml反序列化
32 /// </summary>
33 /// <typeparam name="T">对象类型</typeparam>
34 /// <param name="strPath">序列化文件保存的路径</param>
35 /// <returns>反序列化后的对象</returns>
36 public static T XmlDeserialize<T>(string strPath) where T : class
37 {
38 FileStream fs = new FileStream(strPath, FileMode.Open, FileAccess.Read);
39 XmlSerializer xs = new XmlSerializer(typeof(T));
40 var obj = xs.Deserialize(fs);
41 fs.Close();
42 return obj as T;
43 }
44
45 /// <summary>
46 /// JSON序列化
47 /// </summary>
48 /// <typeparam name="T"></typeparam>
49 /// <param name="entity"></param>
50 /// <returns></returns>
51 public static string JsonSerializer<T>(T entity)
52 {
53 var serializer = new JavaScriptSerializer();
54 return serializer.Serialize(entity);
55 }
56
57 /// <summary>
58 /// JSON反序列化
59 /// </summary>
60 /// <typeparam name="T"></typeparam>
61 /// <param name="jsonString"></param>
62 /// <returns></returns>
63 public static T JsonDeserialize<T>(string jsonString)
64 {
65 var serializer = new JavaScriptSerializer();
66 return serializer.Deserialize<T>(jsonString);
67 }
68 }
69 }