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;
            }

        }

  • 相关阅读:
    Win10下访问linux的ext4分区文件并拷贝
    Zsh 无法找到自己的anaconda python
    Motrix 代替迅雷下载 aria2的配置
    Bash与python混合编程
    如何在 非系统盘安装 wsl
    Python_01
    CC2541蓝牙学习——通用I/O口中断
    自定义弹窗
    使用windbg搜索命令辅助逆向杀软穿透驱动注册表操作
    IAT Hook
  • 原文地址:https://www.cnblogs.com/soonfly/p/1550830.html
Copyright © 2011-2022 走看看