2010-12-23 2 views
1

Возможно ли предоставить собственные методы сериализации и десериализации типа protobuf-net для использования в его методах Serializer.Serialize() и Serializer.Deserialize()?Пользовательские методы сериализации/десериализации в protobuf-net

i.e. Напишите свой собственный код с использованием ProtoWriter и ProtoReader вместо того, чтобы маркировать класс с атрибутами сериализации.

ответ

2

Упоминание ProtoReader/ProtoWriter означает, что это «v2» вопрос, в этом случае вы не должны использовать атрибуты на всех - вы можете определить модель во время выполнения с помощью TypeModel. На вопрос о пользовательских сериализаторах - на данный момент, а не точно, но я ожидаю, что я добавлю интерфейс для этого в ближайшее время. Единственная проблема заключается в том, что вызывающий вызывающий абонент ответственен за вас. может также захотите посмотреть на серийный анализатор DataTable, который делает что-то подобное.

Есть и некоторые технические соображения; в частности наследования; очевидный шаблон будет для вашего класса реализовать интерфейс, но это означает, что после создания объекта слишком поздно создавать подкласс. Если тип, который реализует интерфейс , не является самой сущностью, а отдельный тип, который работает с сериализацией/десериализации ...

Смежные вопросы