using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Xml.Serialization; using System.Data; using System.Reflection; using System.Collections; namespace Ant.Service.Common { /// /// 序列化反序列化对象帮助类 /// add 作者: 季健国 QQ:181589805 by 2016-03-09 /// public class SerializationHelper { public 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(); } } /// /// 序列化XML字符串 /// /// 对象 public static string Save(object obj) { MemoryStream ms = new MemoryStream(); System.Xml.XmlTextWriter xtw = new System.Xml.XmlTextWriter(ms, Encoding.Default); // serialize it... try { XmlSerializer serializer = new XmlSerializer(obj.GetType()); serializer.Serialize(xtw, obj); return Encoding.Default.GetString(ms.ToArray()); } catch (Exception ex) { throw ex; } finally { xtw.Close(); ms.Dispose(); } } /// /// 反序列化XML字符串 /// /// 类型 /// XML字符串 /// public static object Get(Type type, string xml) { MemoryStream ms = null; StreamReader sr = null; try { XmlSerializer serializer = new XmlSerializer(type); ms = new MemoryStream(Encoding.Default.GetBytes(xml)); using (sr = new StreamReader(ms, Encoding.Default)) { return serializer.Deserialize(sr); } } catch (Exception ex) { throw ex; } finally { sr.Dispose(); sr.Close(); ms.Dispose(); } } } }