Protobuf-net 跳过特定字段的反序列化

Protobuf-net skip deserialization of specific fields

这个我已经连载了 class:

[ProtoContract]
public class TestClass
{
    [ProtoMember(1)] public int[] hugeArray;
    [ProtoMember(2)] public int x;
    [ProtoMember(3)] public int y;
    //lot more fields and properties to serialize here...

}

如何在反序列化过程中跳过 [ProtoMember(1)] hugeArray,以便只反序列化 x、y 和其他字段?

我的问题是,有时我很快只需要获取 'metadata',这是其他字段和属性描述的内容,但有时我需要整个对象。

两个选项:

  • 两个 RuntimeTypeModel 个实例(一个手动构建,仅指定了所需的字段)
  • 两种类型;即创建一个更简单的 TestClass 只是省略大字段 - 即 TestClassMetadata - 并反序列化为 that; protobuf-net 根本不会介意