using System; using System.IO; using System.Xml.Serialization; using System.Web.Script.Serialization; using System.Data; using System.Collections; using System.Collections.Generic; namespace YTSoft.Common { public static class SerializationHelper { /// /// 反序列化 /// /// 对象类型 /// 文件路径 /// public static object Load(Type type, string filename) { FileStream fs = null; try { // open the stream... fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); XmlSerializer serializer = new XmlSerializer(type); return serializer.Deserialize(fs); } catch (Exception ex) { throw ex; } finally { if (fs != null) fs.Close(); } } /// /// 序列化 /// /// 对象 /// 文件路径 public static void Save(object obj, string filename) { FileStream fs = null; // serialize it... try { fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.ReadWrite); XmlSerializer serializer = new XmlSerializer(obj.GetType()); serializer.Serialize(fs, obj); } catch (Exception ex) { throw ex; } finally { if (fs != null) fs.Close(); } } /// /// DataTable转Json,[{},{},{}]形式 /// /// /// public static string DataToJson(this DataTable dt) { JavaScriptSerializer jss = new JavaScriptSerializer(); ArrayList dic = new ArrayList(); foreach (DataRow dr in dt.Rows) { Dictionary drow = new Dictionary(); foreach (DataColumn dc in dt.Columns) { drow.Add(dc.ColumnName, dr[dc.ColumnName]); } dic.Add(drow); } return jss.Serialize(dic); } } }