未能反序列化ReadOnlyCollection

本文关键字:ReadOnlyCollection 反序列化 | 更新日期: 2023-09-27 18:15:29

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

未能反序列化ReadOnlyCollection

我认为protobuf-net只将集合反序列化为List。你可以:

var roc2aux = Serializer.Deserialize<List<byte>>(ms);
var roc2 = new ReadOnlyCollection<byte>(roc2aux);
Console.WriteLine( BitConverter.ToString( roc2.ToArray() ) );
相关文章:
  • 没有找到相关文章