zoukankan      html  css  js  c++  java
  • 序列化类,将类转为二进制

    因为需要把复杂事物组合放进数据库,因此采用了将类转成二进制,直接插入到一个字段
    public static class Serializer
        {

            public static byte[] ToBinary<T>(this T o) where T : class, new()
            {
                byte[] bytes = null;
                DataContractSerializer dc = new DataContractSerializer(typeof(T));


                using (MemoryStream ms = new MemoryStream())
                {
                    //formatter.Serialize(ms, value);
                    dc.WriteObject(ms, o);
                    ms.Seek(0, 0);
                    bytes = ms.ToArray();
                }

                return bytes;
            }

            public static TResult FromBinary<TResult>(this TResult input, byte[] bits) where TResult : class, new()
            {
                TResult result = default(TResult);
                DataContractSerializer dc = new DataContractSerializer(typeof(TResult));
                //IFormatter formatter = new BinaryFormatter();
                using (MemoryStream ms = new MemoryStream(bits))
                {
                    result = (TResult)dc.ReadObject(ms);
                }

                return result;
            }

        }

  • 相关阅读:
    盘一盘 synchronized (二)—— 偏向锁批量重偏向与批量撤销
    盘一盘 synchronized (一)—— 从打印Java对象头说起
    盘一盘 Thread源码
    盘一盘 System.out.println()
    Java中的单例模式
    Spring AOP SpringBoot集成
    第16周作业
    第15周作业
    迟到的第14周作业
    第13周作业集
  • 原文地址:https://www.cnblogs.com/soonfly/p/1550830.html
Copyright © 2011-2022 走看看