ich bin neu in Protokoll-Puffer und ich verwende Protobuf-Net für VS2010. von dem, was ich hier lese Wörterbuch in Protokoll-Puffer scheint es nicht, dass Protobuf kann Serialisieren Sie ein Dictionary mit Objekttypen als Werte. aber hier auf seiner Seite lese ich das:
Hinweise zu Typen
unterstützt:
benutzerdefinierte Klassen, die: als Datenvertrag gekennzeichnet sind, haben einen Parameterless Konstruktor für Silverlight: sind viele häufig verwendete Primitive etc Eindimensionale Arrays: T [] Liste / IList Wörterbuch / IDictionary jeder Typ welcher implementiert IEnumerable und hat eine Add (T) -Methode, die der Code voraussetzt diese Typen werden um die gewählten Mitglieder herum veränderbar sein. Entsprechend, Benutzerdefinierte Strukturen werden nicht unterstützt, da sie unveränderlich sein sollten.
scheint wie es unterstützt wird.
Ich kann eine Liste von Objekten wie folgt erfolgreich kompilieren:
%Vor% Dies funktioniert für List<SomeClass>
. Warum kann ich nicht mithilfe von protobuf-net eine Dictionary<int, SomeClass>
serialisieren? Wie würde die Nachricht aussehen, um ein Dictionary<int, SomeClass>
zu serialisieren?
A Dictionary<int,SomeClass>
ist mit protobuf-net perfekt serailisierbar. Protobuf-net funktioniert am einfachsten wenn Code zuerst bearbeitet wird, also: * habe einfach ein Dictionary<int,SomeClass>
in deinem Modell. Sie müssen kein .proto überhaupt verwenden - das wird hauptsächlich für plattformübergreifende Zwecke bereitgestellt. Die .proto-Spezifikation hat kein Dictionary-Konzept, aber wenn erforderlich ist um ein .proto-Schema zu verwenden, wird dies serialisiert als:
mit dem Wörterbuch als
%Vor%Tags und Links c# protocol-buffers protobuf-net