Чтобы сериализовать класс с помощью protobuf-net, необходимо предоставить атрибуты класса и свойств [ProtoContract] и [ProtoMember (n)] - где n равно 1,2,3, .. и т. Д.
Приступить к клонированию в зеркальное отображение класса, возможно ли сериализовать / десериализовать класс, который мы не можем контролировать?
Например:
с использованием ProtoBuf;
- Serializer.Serialize (OutputStream, исключение);
или
- Serializer.Serialize> (OutputStream, dataWithPossibleException);
NB.Сказать, что данные имеют [ProtoContract] / [ProtoMember], а другие нет.
возможные подходы:
- Было бы хорошо, если бы у нас были "атрибуты расширения", которые работали как методы расширения.[невозможно]
- реплицирует класс локально, а затем копирует в / из объекта перед сериализацией / десериализацией [это будет работать, но производительность снизится]
- создать внешний файл прото / определение длякласс и хранить это в ресурсах?[кто-нибудь знает, как это сделать?]