Protobuf-net序列化InvalidOperationException

3

我有一个自定义对象,正在尝试使用Protobuf-net进行序列化,但会抛出以下异常:

未处理的InvalidOperationException:在写入字符串数据之前无法写入Variant标头

我发现有趣的事情是,在我的对象图中没有任何被序列化的字符串。有人见过这样的错误吗?是否已知原因/解决方法?谢谢。


1
在这个上下文中,“String数据”是指protobuf wire规范,其中“string”是一种不一定意味着“文本字符串”的wire-type。基本上,它通常是“header,value,header,value,...”,其中header以非常压缩的形式包含了以下值的wire-type;因此,如果它发现自己写入“header,header”,它知道出了问题,并且它正在抱怨第一个header没有写入任何值,这恰好是类型为“string”的情况。总的来说,我怀疑这是一个早已修复的错误。 - Marc Gravell
1个回答

1

每次出现该错误时,都会有一个长度为零的字节数组。我已经停止了长度为零的数组出现,这似乎已经修复了问题。我可能会尝试使用更高版本的protobuf-net来查看是否可以更完全地解决这个问题。 - mcd40
@mcd,当出现这种情况时,您使用的是哪个版本? - Marc Gravell
@MarcGravell 我认为它是2.0.0.404。 - mcd40

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接