using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
//序列化DataSet中的内容函数
public static byte[] GetBinaryFormatDataSet(DataSet ds)
{
DataSet ds = new DataSet();
MemoryStream memStream=new MemoryStream();
//产生二进制序列化格式
IFormatter formatter = new BinaryFormatter();
ds.RemotingFormat = SerializationFormat.Binary;
formatter.Serialize(memStream,ds);
//memStream的ToArray()方法是将整个流内容写入字节数组
byte[] binaryResult = memStream.ToArray();
//关闭当前流并与之关联的所有资源(比如套接字或文件句柄)
memStream.Close();
memStream.Dispose();
}
//反序列化DataSet中的内容函数
public static DataSet RetrieveDataSet(byte[] binaryData)
{
//创建内存流
MemoryStream memStream = new MemoryStream(binaryData);
//memStream.Seek(0, SeekOrigin.Begin);
//memStream.Position = 0;
//产生二进制序列化格式
IFormatter formatter = new BinaryFormatter();
//反串行化到内存中
object obj = formatter.Deserialize(memStream);
//类型检验
if (obj is DataSet)
{
DataSet dataSetResult = (DataSet)obj;
return dataSetResult;
}
else
{
return null;
}
}