C#项目中较多使用了序列化和反序列化,较为常用的序列化和反序列化操作有二进制流,JSON,XML等,现在介绍一下.net中二进制流的序列化和反序列化操作方法:
1.将对象序列化为二进制流:
/// <summary> /// 将对象序列化为byte[] /// 使用IFormatter的Serialize序列化 /// </summary> /// <param name="obj">需要序列化的对象</param> /// <returns>序列化获取的二进制流</returns> public static byte[] FormatterObjectBytes(object obj) { if(obj==null) throw new ArgumentNullException("obj"); byte[] buff; try { using (var ms = new MemoryStream()) { IFormatter iFormatter = new BinaryFormatter(); iFormatter.Serialize(ms, obj); buff = ms.GetBuffer(); } } catch (Exception er) { throw new Exception(er.Message); } return buff; }
2.将对象转为二进制文件,并保存到指定的文件中:
/// <summary> /// 将对象转为二进制文件,并保存到指定的文件中 /// </summary> /// <param name="name">文件路径</param> /// <param name="obj">待存的对象</param> /// <returns></returns> public static bool BinaryFileSave(string name,object obj) { Stream flstr=null; BinaryWriter binaryWriter=null; try { flstr &#