我正在尝试使用protobuf序列化ConcurrentQueue,但是在反序列化对象时遇到异常
Type is not expected, and no contract can be inferred: System.Collections.Concurrent.ConcurrentQueue`1[[System.Byte[], mscorlib
有办法解决吗?例如将扩展写入Protobuf还是继承并扩展ConcurrentQueue?
最佳答案
protobuf的开发人员说here不支持ConcurrentQueue<T>
,并且提供了与Lloyd的建议类似的解决方法。在链接失效的情况下添加以下代码:
public ConcurrentQueue<int> Items {get;set;}
[ProtoMember(n)]
private int[] Items
{
get { return Items.ToArray(); }
set { Items = new ConcurrentQueue<int>(value); }
}