使用 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);