我有一个用[ProtoContract(ImplicitFields = ImplicitFields.AllFields)]装饰的基类

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

最佳答案

Protobuf不完全支持继承,您需要在基类中进行一些修饰。

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

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

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


对于仅通过基类提供属性的派生类。

关于c# - protobuf.net继承-使用ImplicitFields = ImplicitFields.AllFields,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14432357/

10-11 04:37