问题
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.
回答1:
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
来源:https://stackoverflow.com/questions/28444460/protobuf-net-skip-deserialization-of-specific-fields