解析ProtoBuf数据时出错

时间:2018-08-26 17:18:14

标签: c# protocol-buffers

我正在序列化链表,反序列化时出现以下错误。

Google.Protobuf.InvalidProtocolBufferException: 'Protocol message had too many levels of nesting. May be malicious. Use CodedInputStream.SetRecursionLimit() to increase the depth limit.'

我找不到很多有关如何解决此问题的文档。

1 个答案:

答案 0 :(得分:1)

可以使用CodedInputStream.CreateWithLimits设置递归限制:

public static CodedInputStream CreateWithLimits(Stream input, int sizeLimit, int recursionLimit)

请注意,默认递归深度为64。请参见源here

编辑: 您可以为链接列表项目发布模型吗?您可以在执行序列化之前添加一些展平行为。