Ich benutze Protobuf-net (Version 2.0.0.621) und ein Problem Serialisierung List Typ wo T ist meine eigene Klasse (es ist egal, was es enthält) und ein Surrogat für T. gesetztSerialisierung Liste <T> mit einem Ersatz mit Protobuf-Net Ausnahme
der Ersatz wird wie folgt aus:
ProtoBuf.Meta.RuntimeTypeModel.Default.Add(typeof(MyClass), false).SetSurrogate(typeof(MyClassSurrogate));
MyClass:
public class MyClass
{
public int Number { get; set; }
}
[ProtoContract]
MyClassSurrogate
{
[ProtoMember(1)]
public int Number { get; set; }
}
Dann erstelle ich eine generische Liste von Typ MyClass ins tung, füllen Sie es mit Gegenständen und es so serialisiert werden:
ProtoBuf.Serializer.Serialize(stream, list);
Das Problem auf Deserialisierung auftritt, halte ich in dem impliziten Operator conversion "null" in dem Leihmutter bekommen:
static public implicit operator MyClassSurrogate(MyClass myClass)
dann ‚myClass ' ist Null.
Wenn ich das Ersatzzeichen entferne und MyClass mit den Proto-Attributen dekoriere, funktioniert alles gut.
Können Sie mir sagen, was ich falsch mache?
Danke.
Kommentar ignorieren, wenn nutzlos, nur versuchen zu helfen, aber ich habe nie Protokollpuffer verwendet. Wie auch immer, die Frage scheint ziemlich einfach zu sein, weist das auf die richtige Richtung hin? http://stackoverflow.com/questions/6498438/protobuf-net-cannot-serialize-type-data-how-can-i-define-type-data-with-protoc – bas