3
я сериализовать этот класс:Protobuf внутрисетевого пропуска десериализация специфических полех
[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 во время десериализации, так что только х, у и другие поля получают десериализации?
Моя проблема заключается в том, что иногда мне очень просто нужно получить «метаданные», которые описывают другие поля и свойства, но иногда мне нужен целый объект.
В моем классе 30 полей, и я старался избегать дублирования кода, чтобы пропустить 1 поле во время десериализации. Мне хотелось что-то вроде псевдокода: RuntimeTypeModel.BuildModelFor (typeof (TestClass)). RemoveMember (1), но я не уверен, что есть что-то подобное, предлагаемое protobuf-net. – Michal
@Michal действительно - нет Remove; вам понадобится TypeModel.Create(), Добавить (введите, false), а затем Добавить членов, которые вы * делаете * хотите –