我正在尝试使用protobuf-net序列化和反序列化ReadOnlyCollection
。但是,当protobuf-net尝试将List转换为ReadOnlyCollection时,反序列化会抛出异常。
var roc = new ReadOnlyCollection<byte>(new byte[] {1, 2, 3});
var ms = new MemoryStream();
Serializer.Serialize(ms, roc);
ms.Position = 0;
var roc2 = Serializer.Deserialize<ReadOnlyCollection<byte>>(ms);
Console.WriteLine( BitConverter.ToString( roc2.ToArray() ) );
有没有办法将其保留为ReadOnlyCollection
而不是序列化/反序列化为List
?在实际应用程序中,ReadOnlyCollection
是我要序列化的不可变对象的一部分,并且希望将其保留为ReadOnlyCollection
。
答案 0 :(得分:0)
我认为protobuf-net只将集合反序列化为List。 你可以:
var roc2aux = Serializer.Deserialize<List<byte>>(ms);
var roc2 = new ReadOnlyCollection<byte>(roc2aux);
Console.WriteLine( BitConverter.ToString( roc2.ToArray() ) );