忽略Protobuf-net v2的ListHandling

时间:2012-03-05 23:24:16

标签: c# serialization .net-4.0 protobuf-net

我正在使用protobuf-net v2 r480(根据我的理解......)。

问题:

当具有列表处理(FileTree)的类是另一个类(MyRandomStuff)的字段时,如何让protobuf-net忽略列表处理?

背景

我有一个FileTree类(我之前描述过here on StackOverflow),它实现了ICollection<MyFileInfo>IEnumerable<MyFileInfo>IEnumerable和其他一些接口。我已使用FileTree[ProtoContract(IgnoreListHandling = true)]课程添加了标记。 FileTree类本身可以很好地序列化。

我遇到的问题是MyRandomStuff类,它有一个FileTree字段。当我使用“[ProtoIgnore]”标记该字段时,MyRandomStuff的实例序列化就好了。但是,当我通过“FileTree”包含[ProtoMember(2)]字段时,序列化失败并显示MyFileInfo对象需要具有无参数构造函数的消息。我故意设置我的代码,以便MyFileInfo永远不可序列化。 (相反,FileTree在反序列化期间会创建相关的MyFileInfo个对象。

不幸的是,如果它是一个bug,我没有快速发送的样本。我已经解决了问题,但我想也许我会在这里问我是不是做错了(比如标记,或者使用过时的protobuf版本)。

0 个答案:

没有答案