使用 GZip 反序列化时遇到问题
Trouble Deserializing with GZip
当我在没有 GZip 的情况下反序列化时,它就完成了。但是在使用 GZip 反序列化时出现反序列化错误。
序列化:
using (MemoryStream ms = new MemoryStream())
{
using (var compressionStream = new GZipStream(ms, CompressionMode.Compress))
{
serializator.Serialize(compressionStream, obj);
}
byte[] result = ms.ToArray();
return result;
}
反序列化:
using (MemoryStream ms = new MemoryStream(_objBytes))
{
using (GZipStream decompressionStream = new GZipStream(ms, CompressionMode.Decompress))
{
return serializator.Deserialize(decompressionStream, null, objType, _objBytes.Length);
}
}
如注释中所述,字节数错误。你为什么要指定它?您可以使用不带长度参数的重载:
RuntimeTypeModel.Default.Deserialize(decompressionStream, null, objType);