protobuf-net:不正确的线型反序列化 TimeSpan

Posted

技术标签:

【中文标题】protobuf-net:不正确的线型反序列化 TimeSpan【英文标题】:protobuf-net: Incorrect wire-type deserializing TimeSpan 【发布时间】:2009-11-12 19:41:34 【问题描述】:

当我的客户端应用程序尝试反序列化来自 WCF 服务的消息时(“不正确的线型反序列化 TimeSpan”),我收到此异常。

我正在使用 .NET 3.5 SP1 和最新版本的 protobuf-net (1.0.0.275)。 我不知道可能是什么问题。 我不理解此错误消息的原因。有人吗?

【问题讨论】:

【参考方案1】:

我很乐意提供帮助(我是 protobuf-net 的作者),但这并不是一件大事。你能为此提供任何例子吗?在最简单的层面上,我想知道服务是否已完全配置 - 特别是如果您使用“mex”或 add-service-reference。

【讨论】:

【参考方案2】:

在缺少 byte[] 数据类型的线型方面也有同样的问题。 我已通过将 BlobSerializer 添加到 ValueMember.cs、GetCoreSerializer 函数来解决此问题。可以随时检查该函数以查看序列化程序是否正确连接。

        if (type == typeof(byte[]))
        
            defaultWireType = WireType.String;
            return new BlobSerializer();
        

顺便说一句,喜欢序列化程序的效率,使用 BinaryFormatter 的 16GB 现在只需要 400 mb。

【讨论】:

以上是关于protobuf-net:不正确的线型反序列化 TimeSpan的主要内容,如果未能解决你的问题,请参考以下文章

Protobuf-net 使用嵌套数据反序列化时出现无效的线型异常(C++ 到 C#)

使用 Protobuf-net 反序列化二进制文件时的线型无效

如何修复 c# protobuf-net 中的无效线型问题

为啥我不能使用 ProtoBuf-Net 正确反序列化我的对象?

使用 ProtoBuf-net 反序列化派生类型(字典)未正确设置对象字段

protobuf-net 不使用私有设置器序列化 C# 属性