我正在使用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版本)。