我正在尝试使用 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); }
}
关于c# - 使用 protobuf 序列化 ConcurrentQueue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31004975/