Ваши ключевые моменты, похоже, касаются изменчивости и наблюдаемости.
API Protobuf от Google действительно в значительной степени неизменен и не очень любит WPF;тем не менее, вы также упоминаете protobuf-net, который является , а не этим шаблоном, и принимает вместо этого стандартные идиомы .NET.
Модель protobuf-net может быть любой стандартной моделью, которую вы хотите.Если вы хотите, чтобы он имел события уведомления ... есть события уведомления.Это не будет возражать.Я не могу вспомнить 100%, но если вы работаете с файлом .proto, я полагаю, есть переключатель, чтобы автоматически кодировать события уведомлений, но .proto совершенно не обязателен для protobuf-net.
Выходные данные protobuf-net должны быть полностью взаимозаменяемыми с любой другой реализацией для вашего устройства linux.Один из вариантов - Mono / protobuf-net, но вы также можете использовать «стандартные» реализации.