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