我正在尝试使用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); }
}

08-19 15:26