Serialization 如何使用protobuf序列化大型嵌套数组?

Serialization 如何使用protobuf序列化大型嵌套数组?,serialization,protobuf-net,Serialization,Protobuf Net,我正在使用protobuf net进行二进制序列化。我在序列化类A时从内存中获取数据。使用BinaryFormatter可以很好地序列化同一对象 以下是课堂示例: [ProtoContract] class A: [ProtoMember(1, DataFormat = DataFormat.Group)] B[] Array1 {get; set;} .... class B: [ProtoMember(1)] string Field1 {get; set;}

我正在使用protobuf net进行二进制序列化。我在序列化类A时从内存中获取数据。使用BinaryFormatter可以很好地序列化同一对象

以下是课堂示例:

[ProtoContract]
class A:
   [ProtoMember(1, DataFormat = DataFormat.Group)]
   B[] Array1 {get; set;}
   ....

class B:
   [ProtoMember(1)]
   string Field1 {get; set;}

   [ProtoMember(2)]
   string Field1 {get; set;}

   [ProtoMember(3, DataFormat = DataFormat.Group)]
   C[] Array2 {get; set;} // 20000 elements
   ....

class C:
   [ProtoMember(1)]
   string Field1 {get; set;}

   [ProtoMember(2)]
   string Field1 {get; set;}

哇。哇。谢谢你问这个问题。有一个小故障,它在一些场景中没有正确地应用组编码,包括您的场景。对于protobuf net来说,这并不是一个大问题,因为组和字符串是可互换的,但这仍然是一个有点令人尴尬的小故障,尤其是因为“组”是(正如您正确使用的)使事情只向前的关键,用于序列化大型图


我已经在本地和源代码中修复了这个问题——但是,在正式发布之前,我想做更多的稳定性测试。如果您愿意从源代码构建,它现在应该可以正常工作了——或者如果您愿意,我可以通过电子邮件向您发送一个dll。

谢谢。如果你给我发一个dll,那就太好了。@shtriha好的。接下来的几个小时我都不在电脑前,但以后会这样做。