在项目中,经常需要将数据集序列化后传递以提高效率。关于序列化和反序列化代码如下。 序列化: public byte[] GetDataSet() { DataSet dsResult = new DataSet(); dsResult = GetDS();//获取Dataset的方法 byte[] bArrayResult = null; try { // 上面都是取数据的,无需关心.二进制压缩数据集是下面一小段 dsResult.RemotingFormat = SerializationFormat.Binary; MemoryStream ms = new MemoryStream(); IFormatter bf = new BinaryFormatter(); bf.Serialize(ms, dsResult); bArrayResult = ms.ToArray(); ms.Close(); } catch { } return bArrayResult; } 反序列化: public static DataSet GetDS() { DataSet dsResult = new DataSet(); try { //调用服务端,返回byte[] byte[] bUserData = GetDataSet();//将数据序列化的方法 // 反序列化的过程 MemoryStream ms = new MemoryStream(bUserData); IFormatter bf = new BinaryFormatter(); object obj = bf.Deserialize(ms); dsResult = (DataSet)obj; ms.Close(); } catch (Exception ex) { throw ex; } return dsResult; } :