Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Protobuf-net skip deserialization of specific fields

I have serialized this 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...

}

How do I skip the [ProtoMember(1)] hugeArray during deserialization, so that only x, y, and other fields get deserialized?

My problem is that sometimes I quickly need only to get the 'metadata', which is what other fields and properties describe, but sometimes I need an entire object.

like image 961
Michal Avatar asked Sep 11 '25 21:09

Michal


1 Answers

Two options:

  • two RuntimeTypeModel instances (one built manually with only the desired fields specified)
  • two types; i.e. create a simpler TestClass that simply omits the big fields - i.e. TestClassMetadata - and deserialize into that; protobuf-net won't mind at all
like image 177
Marc Gravell Avatar answered Sep 16 '25 08:09

Marc Gravell