我一直在阅读protobuf-net文档,但是当有多个类时,我仍然不确定如何表达继承。基于Marc的评论中提到的答案,我已经创建了以下示例映射,然后是我理解的等效.proto语法。 我理解通过这种方式映射,我将在课堂上有多达99个成员的空间,这是继承的形式。我的假设是否正确?
[ProtoContract]
[ProtoInclude(100, typeof(Class2))]
[ProtoInclude(101, typeof(Class3))]
class Class1 {
[ProtoMember(1)]
int field1;
}
[ProtoContract]
[ProtoInclude(100, typeof(Class4))]
class Class2 : Class1 {
[ProtoMember(1)]
int field2;
}
class Class3 : Class1 {
[ProtoMember(1)]
int field2;
}
class Class4 : Class2 {
[ProtoMember(1)]
int field3;
}
等效.proto语法:
message Class1 {
optional int32 field1 = 1;
optional Class2 _notNamed = 100;
optional Class3 _notNamed = 101;
}
message Class2 {
optional int32 field2 = 1;
optional Class4 _notNamed = 100;
}
message Class3 {
optional int32 field2 = 1;
}
message Class4 {
optional int32 field3 = 1;
}