C# protobuf多重衍生合约净额

C# protobuf多重衍生合约净额,c#,protobuf-net,protocol-buffers,C#,Protobuf Net,Protocol Buffers,我有以下基类: [ProtoContract] public class Packet { [ProtoMember(1)] public int Id { get; set; } } 该类将由10+个其他类派生。我的问题是如何分配ProtoInclude属性 这是不是一个好的解决方案 [ProtoContract] [ProtoInclude(20, typeof(NotifyClientBalance))] [ProtoInclude(21, typeof(IsAlive)

我有以下基类:

[ProtoContract]
public class Packet
{
    [ProtoMember(1)]
    public int Id { get; set; }
}
该类将由10+个其他类派生。我的问题是如何分配ProtoInclude属性

这是不是一个好的解决方案

[ProtoContract]
[ProtoInclude(20, typeof(NotifyClientBalance))]
[ProtoInclude(21, typeof(IsAlive))]
[ProtoInclude(22, typeof(TransactionConfirmation))]
...
public class Packet
{
    [ProtoMember(1)]
    public int Id { get; set; }
}
有更好的选择吗?如何将标记分配给ProtoInclude?对我来说一切都不清楚,也没有关于这件事的好文件

谢谢

附言

ProtoInclude是否可跨不同平台移植?我对Python特别感兴趣


再次感谢:)

在protobuf网络中使用,这种方法很好。数字又好又低,这使它保持了效率

继承不是protobuf规范的一部分,所以这在平台之间是不可移植的——至少,不是作为继承。从获取数据的角度来说,它是可移植的。它映射到如下内容:

message Packet {
    optional int id = 1;
    optional NotifyClientBalance balance = 20;
    // ...
}
message NotifyClientBalance {...}
//...
或者只需使用
Serializer.GetProto()
将模式导出为.proto