У меня есть система, построенная на protobuf.net, система предоставляет абстрактный класс (foo), который, как я ожидаю, будет реализован конечным пользователем. Абстрактный класс сериализуем с помощью protobuf.net. В настоящее время, когда я пытаюсь сериализовать реализацию foo, я получаю сообщение об ошибке:
Во время сериализации обнаружен неожиданный тип; типы должны быть включены с ProtoIncludeAttribute; найденный бар передан как foo
В этом есть смысл, я не сказал системе о bar, поэтому, когда я передаю bar как foo, она сбивается. Есть ли изящный способ настроить все так, чтобы программисту, использующему мою библиотеку, было просто делать что-то (желательно просто пометить поля как сериализуемые, как при обычном использовании protobuf.net?
Изменить: очевидно, я не могу использовать protoinclude, так как это требует изменения исходного кода базовой библиотеки.