文件序列化操作:序列化命名空间:using System.Xml.Serialization; /// <summary> /// 序列化 /// </summary> /// <param name="request">对象</param> /// <param name="filename">文件路径</param> public static void SerializeFile(object request,string filename) { FileStream fs = null; try { fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.ReadWrite); XmlSerializer serializer = new XmlSerializer(request.GetType()); serializer.Serialize(fs, request); } catch (Exception ex) { throw ex; } finally { if (fs != null) { fs.Close(); } } } /// <summary> /// 反序列化 /// </summary> /// <param name="type">对象类型</param> /// <param name="filename">文件路径</param> /// <returns></returns> public static object DeSerializeBinary(Type type,string filename) { FileStream fs = null; try { 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(); } } } 内存流序列化操作:命名空间:using System.Runtime.Serialization.Formatters.Binary; /// <summary> /// 序列化 /// </summary> /// <param name="reuest">请求对象</param> /// <returns>内存流</returns> public static MemoryStream SerializeBinary(object request) { BinaryFormatter serializer = new BinaryFormatter(); MemoryStream memStream = new MemoryStream(); serializer.Serialize(memStream, request); return memStream; } /// <summary> /// 序列化 /// </summary> /// <typeparam name="T">任意类型的数据</typeparam> /// <param name="aData">数据</param> /// <returns></returns> public static MemoryStream SetSerialize<T>(T aData) { BinaryFormatter formatter = new BinaryFormatter(); MemoryStream memStream = new MemoryStream(); formatter.Serialize(memStream, aData); return memStream; } /// <summary> /// 反序列化 /// </summary> /// <param name="memStream">内存流</param> /// <returns>对象</returns> public static object DeSerializeBinary(MemoryStream memStream) { memStream.Position = 0; BinaryFormatter deserizlizer = new BinaryFormatter(); object obj = deserizlizer.Deserialize(memStream); memStream.Close(); return obj; } /// <summary> /// 反序列化 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="memStream"></param> /// <returns></returns> public static T GetDeSerializ<T>(MemoryStream memStream) { BinaryFormatter deformatter = new BinaryFormatter(); memStream.Position = 0; T obj = (T)deformatter.Deserialize(memStream); memStream.Close(); return obj; }