protobuf.net Unerwarteter Subtyp

8

Ich begegne dieser Ausnahme in meinem Projekt mit Protobuf.net:

%Vor%

Ich habe eine Klasse, die ich sende, die so aussieht:

%Vor%

foo erbt off bar, aber protobuf scheint daran zu ersticken und erzeugt die Ausnahme oben. Gibt es einen Weg dahin? Ich muss in der Lage sein, alle unterschiedlichen Subtypen von Balken in der Liste zu halten, so dass eine mehr typenbeschränkte Lösung schwierig / unmöglich wäre.

    
Martin 26.09.2010, 11:48
quelle

2 Antworten

15

Ich mag mich irren, aber ich denke, Sie müssen in der geerbten Klasse angeben, welche Subtypen von ihm erben, zum Beispiel:

%Vor%     
GenericTypeTea 26.09.2010, 11:53
quelle
0

Ich bin nicht zu 100% bei Protokollpuffern, und vielleicht bin ich hier weit von der Basis entfernt, aber denkst du, dass List von List zuweisbar ist, wo Bar von Foo erbt? Dies ist nicht der Fall - sie werden als zwei verschiedene Arten ohne Beziehung betrachtet. In .NET 4 werden kovariante Typparameter unterstützt, aber es erfordert Unterstützung von der Sammlung (die List selbst in .NET 4 nicht bietet, da dies eine bahnbrechende Änderung wäre - wohl älterer Code, der dies versucht, ist trotzdem kaputt, aber es ist immer noch eine Änderung im Verhalten)

    
x0n 26.09.2010 11:58
quelle