我使用protobuf-net进行反序列化有问题.
我有以下课程:
[ProtoContract]
public class CrazyList : List<string>
{
[ProtoMember(1)]
private readonly string _foo;
public CrazyList(string foo)
{
_foo = foo;
}
public CrazyList(){}
public new void Add(string item)
{
Console.Write(item + foo); // Problem is here!
base.Add(item);
}
}
并像这样使用它:
var list = new CrazyList("world!");
list.Add("Hello ");
using (var ms = new MemoryStream())
{
Serializer.Serialize(ms, list);
ms.Position = 0;
var listDS = Serializer.Deserialize<CrazyList>(ms);
listDS.Add("Goodbye ");
}
在_foo字段反序列化完成之前,方法Add正在触发.
我怎么能解决这个问题?
最佳答案 你需要将它用于CrazList attribut;
[ProtoBuf.ProtoContract(IgnoreListHandling=true)]