protobuf.net继承 - 使用ImplicitFields = ImplicitFields.AllFields

时间:2013-01-21 04:02:16

标签: c# protobuf-net

我有一个用[ProtoContract(ImplicitFields = ImplicitFields.AllFields)]

装饰的基类

为了能够序列化派生类,我只需要添加ProtoInclude吗?因为派生类字段不是序列化 - 继承是否仅适用于Protomember?

1 个答案:

答案 0 :(得分:3)

Protobuf不完全支持您在基类中进行一些装饰所需的继承。

[
ProtoContract(),
ProtoInclude(100, typeof(Peer)),
ProtoInclude(101, typeof(Instruction))
]
class Base {...}

[ProtoContract()]
class Peer: Base
{ ... }

[ProtoContract()]
class Instruction: Base
{ ... }

用于仅通过Base类提供属性的派生类。