Używam protobuf-net (wersja 2.0.0.621) i mam problem z serializacją Typ listy, gdzie T jest moją własną klasą (nie ma znaczenia, co zawiera) i zastępczym jest ustawiony na T.Lista serializacji <T> przy użyciu surogatu z wyjątkiem protobuf-net
surogat jest ustawiony tak:
ProtoBuf.Meta.RuntimeTypeModel.Default.Add(typeof(MyClass), false).SetSurrogate(typeof(MyClassSurrogate));
MojaKlasa:
public class MyClass
{
public int Number { get; set; }
}
[ProtoContract]
MyClassSurrogate
{
[ProtoMember(1)]
public int Number { get; set; }
}
Potem stworzyć ogólny wykaz dodatków typu myClass tance, wypełnić go z pozycji i szeregować je tak:
ProtoBuf.Serializer.Serialize(stream, list);
Problem występuje na deserializacji, ciśgle „null” w zastępstwie w niejawnej konwersji operatora:
static public implicit operator MyClassSurrogate(MyClass myClass)
następnie „myClass "ma wartość zerową.
Jeśli usuniemy surogat i ozdobię MyClass z atrybutami proto, wszystko będzie działać poprawnie.
Czy możesz mi powiedzieć, co robię źle?
Dzięki.
zignoruj komentarz, jeśli jest bezużyteczny, po prostu próbuję pomóc, ale nigdy nie użyłem buforów protokołu. W każdym razie pytanie wydaje się dość proste, czy to wskazuje na właściwy kierunek? http://stackoverflow.com/questions/6498438/protobuf-net-cannot-serialize-type-data-how-can-i-define-type-data-with-protoc – bas