【发布时间】:2020-08-07 12:57:03
【问题描述】:
这段代码重现了这个问题:
Type Resolver(int fieldNumber)
{
return typeof(ConsoleColor?);
}
var stream = new MemoryStream();
ConsoleColor? obj = ConsoleColor.Green;
Serializer.NonGeneric.SerializeWithLengthPrefix(stream, obj, PrefixStyle.Base128, 1);
stream.Position = 0;
Serializer.NonGeneric.TryDeserializeWithLengthPrefix(stream, PrefixStyle.Base128, Resolver, out var dd);
//EXCEPTION!!!
我只是在序列化一个可为空的枚举值。但是当我尝试反序列化时,出现以下异常:
ProtoBuf.ProtoException:线型无效;这通常意味着您在没有截断或设置长度的情况下覆盖了文件;见
https://stackoverflow.com/q/2152978/23354'
我做错了什么?有没有办法解决或解决这个问题?我正在使用 protobuf-net 库的 2.4.6 版本。 (无法迁移到 3.x,因为我被 .Net Framework 4.0 卡住了)。
【问题讨论】:
标签: c# .net-4.0 protobuf-net