Использование собственного пакета C # версии 3.0.0-beta3 согласно официальной документации значения по умолчанию назначаются на этапе синтаксического анализа, и нет способа определить, не было ли значение вообще не передано, для моих целей это жизненно важный момент, так как я хотел сделать какую-то проверку для декодированных прото-сущностей, поэтому интересно, есть ли у кого-нибудь опыт работы с пользовательскими проверка данных или переопределение / перехват стадии синтаксического анализа каким-либо образом?
Несколько основных примеров:
- Для поля int32, если оно вообще не было передано, поэтому вместо значения по умолчанию 0 я хочу обработать этот случай и вызвать настраиваемое исключение
- Для поля int32 я хотел установить допустимый диапазон значений, например 100-1000, иначе выбросить исключение синтаксического анализа
- Для строкового поля я хотел установить минимальную длину на этапе синтаксического анализа / декодирования
Как бы вы предложили это сделать, кроме написания настраиваемого уровня проверки поверх пакета / API protobuf? Я все еще надеюсь, что есть точки расширяемости, но еще не нашел