我正在尝试使用protobuf-net v2序列化/反序列化下面定义的List,并且在反序列化时我得到以下异常。
预计不会输入类型,也无法推断合同
在下面的示例中,我使用WithLengthPrefix调用,因为这实际上是通过网络流进行的,但问题是可以重现的。
var mStream = new MemoryStream();
Serializer.SerializeWithLengthPrefix(mStream, testList, PrefixStyle.Fixed32);
mStream.Seek(0, SeekOrigin.Begin);
var nOrders = Serializer.DeserializeWithLengthPrefix
<List<TestObj>>(mStream, PrefixStyle.Fixed32);
使用如下定义的RiskOrder
[ProtoContract]
public class TestObj
{
[ProtoMember(1)]
public string Key{ get; set; }
[ProtoMember(2)]
public string Val{ get; set; }
}
看来这可能与here发布的错误有关,但由于尚未确认,我以为我会看到是否有其他人遇到此问题/有解决方法。
更新 我忘了提到这个问题似乎只有在列表中有条目时才会出现。
答案 0 :(得分:1)
我相信r403修复了这个错误,因为我更新到最新的源代码而不是v2 beta版,它似乎已修复。