如何在protobuf-net中建模继承?

时间:2017-07-18 10:23:09

标签: c# protocol-buffers protobuf-net

我一直在阅读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;
}

0 个答案:

没有答案