Erweiterung Protobuf-Messages

Ich habe viele verschiedene schemas, aber es gibt eine Reihe von Feldern, die jedes schema enthält. Ich Frage mich, ob es war ein Weg, um ein anderes schema erweitern, einem übergeordneten schema und Erben seiner Felder. Zum Beispiel das ist, was ich will:

message Parent {
    required string common1 = 0;
    optional string common2 = 1;
}

message Child1 { //can we extend the Parent?
    //I want common1, common2 to be fields here
    required int c1 = 2;
    required string c2 = 3;
}

message Child2 { //can we extend Parent?
    //I want common1, common2 to be fields here
    repeated int c3 = 2;
    repeated string c4 = 3;
}

So, dass Child1 und Child2 enthalten auch die Felder common1 und common2 (und möglicherweise mehr) von Eltern.

Ist das möglich und wenn ja wie?

  • Vererbung wird nicht unterstützt, aber als ein armer Mann-Lösung, Sie könnte verwenden Sie eine verschachtelte Konstruktion, wo das erste Feld der Child1 und Child2 ist der Typ Parent. Um Zugriff auf die Felder in der "Basis-Klasse", müssen Sie explizit den Zugriff, die Parent-typisierte Felder zuerst.
  • Es gibt auch Erweiterungen. developers.google.com/protocol-buffers/docs/proto#extensions
InformationsquelleAutor user1413793 | 2015-03-25
Schreibe einen Kommentar