zoukankan      html  css  js  c++  java
  • 序列化

       #region 序列化
    
            /// <summary>
            /// 二进制的方式序列化DataTable
            /// </summary>
            /// <param name="o">需要转换的对象</param>
            /// <returns>二进制数组</returns>
            private static byte[] GetBinaryFormatDataTable(DataTable dt)
            {
                MemoryStream memory = new MemoryStream();//使用内存流来存这些byte[] 
                BinaryFormatter formatter = new BinaryFormatter();
                formatter.Serialize(memory, dt);
                byte[] buff = memory.GetBuffer(); //这里就可你想要的byte[],可以使用它来传输 
                memory.Close();
                memory.Dispose();
                return buff;
            }
            /// <summary>
            /// 反序列化byteDataTable
            /// </summary>
            /// <param name="bt">二进制数据</param>
            /// <returns>DataTable</returns>
            private static DataTable RetrieveDataTable(byte[] bt)
            {
                MemoryStream memory = new MemoryStream();//使用内存流来存这些byte[] 
                BinaryFormatter formatter = new BinaryFormatter();
                return (DataTable)formatter.Deserialize(new MemoryStream(bt)); //byte[]转回的datatable 
            }
    
            /// <summary>
            /// DataSet序列化
            /// </summary>
            /// <param name="ds">需要序列化的DataSet</param>
            /// <returns></returns>
            private static byte[] GetBinaryFormatDataSet(DataSet ds)
            {
    
                MemoryStream memStream = new MemoryStream();   //创建内存流
    
                IFormatter formatter = new BinaryFormatter();//产生二进制序列化格式
    
                ds.RemotingFormat = SerializationFormat.Binary;//指定DataSet串行化格式是二进制
    
                formatter.Serialize(memStream, ds);//串行化到内存中
    
                byte[] binaryResult = memStream.ToArray();//将DataSet转化成byte[]
    
                memStream.Close();//清空和释放内存流
                memStream.Dispose();
                return binaryResult;
            }
            /// <summary>
            /// DataSet反序列化
            /// </summary>
            /// <param name="binaryData">需要反序列化的byte[]</param>
            /// <returns></returns>
            private static DataSet RetrieveDataSet(byte[] binaryData)
            {
    
                MemoryStream memStream = new MemoryStream(binaryData);//创建内存流
    
                IFormatter formatter = new BinaryFormatter();//产生二进制序列化格式
    
                object obj = formatter.Deserialize(memStream);//反串行化到内存中
                //类型检验
                if (obj is DataSet)
                {
                    DataSet dataSetResult = (DataSet)obj;
                    return dataSetResult;
                }
                else
                {
                    return null;
                }
            }
    
            #endregion 序列化
    
    
    那些个风花雪月的日子 那些铺满星辰的大地 那个被代码包裹的我
  • 相关阅读:
    05 redis中的Setbit位图法统计活跃用户
    04 redis list结构及命令详解
    03 redis之string类型命令解析
    02 redis通用命令操作
    Mesos提交任务没有被执行
    mesos的zookeeper变更
    VS Code使用git
    vs code 安装Scala
    打印正反读计算方式
    cloudera上面安装Spark2.0
  • 原文地址:https://www.cnblogs.com/jigong/p/1744461.html
Copyright © 2011-2022 走看看