ClassSerializers.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Runtime.Serialization.Formatters.Binary;
  5. using System.Text;
  6. namespace TEAMModelOS.SDK.Helper.Common.JsonHelper
  7. {
  8. /// <summary>
  9. /// 对象与二进制流的互相转换。
  10. /// </summary>
  11. public class ClassSerializers
  12. {
  13. #region 对象与二进制流的互相转换
  14. /// <summary>
  15. /// 将对象流转换成二进制流
  16. /// </summary>
  17. public static MemoryStream SerializeBinary(object request) //将对象流转换成二进制流
  18. {
  19. BinaryFormatter serializer = new BinaryFormatter();
  20. MemoryStream memStream = new MemoryStream(); //创建一个内存流存储区
  21. serializer.Serialize(memStream, request); //将对象序列化为内存流中
  22. return memStream;
  23. }
  24. public static byte[] SerializeByte(object request) //将对象流转换成二进制流
  25. {
  26. BinaryFormatter serializer = new BinaryFormatter();
  27. MemoryStream memStream = new MemoryStream(); //创建一个内存流存储区
  28. serializer.Serialize(memStream, request); //将对象序列化为内存流中
  29. byte[] bytes = new byte[memStream.Length];
  30. memStream.Read(bytes, 0, bytes.Length);
  31. // 设置当前流的位置为流的开始
  32. memStream.Seek(0, SeekOrigin.Begin);
  33. return bytes;
  34. }
  35. /// <summary>
  36. /// 将二进制流转换成对象
  37. /// </summary>
  38. public static object DeSerializeBinary(MemoryStream memStream) //将二进制流转换成对象
  39. {
  40. memStream.Position = 0;
  41. BinaryFormatter deserializer = new BinaryFormatter();
  42. object newobj = deserializer.Deserialize(memStream); //将内存流反序列化为对象
  43. memStream.Close(); //关闭内存流,并释放
  44. return newobj;
  45. }
  46. #endregion
  47. }
  48. }