3

[ProtoContract(ImplicitFields = ImplicitFields.AllFields)]で装飾された基本クラスがあります

派生クラスをシリアル化できるようにするには、ProtoIncludeを追加するだけで済みますか?派生クラスフィールドはシリアル化されていないため、継承はProtomemberでのみ機能しますか?

4

1 に答える 1

3

Protobufは、基本クラスで少し装飾を行うために必要な継承を完全にはサポートしていません。

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

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

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

Baseクラスを介してのみプロパティを提供する派生クラスの場合。

于 2013-01-21T04:16:41.567 に答える