C # .net-Protokollpuffer - protobuf-net-Unterstützung für das Serialisieren eines Wörterbuchs von Objektwerten?

8

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?

    
ijjo 05.06.2012, 02:44
quelle

1 Antwort

9

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:

%Vor%

mit dem Wörterbuch als

%Vor%     
Marc Gravell 05.06.2012, 06:46
quelle