【发布时间】:2016-05-24 11:59:28
【问题描述】:
使用 3.0.0-beta3 版本的 C# 原生包,根据 official documentation 在解析阶段分配默认值,无法区分是否根本没有传递值,对我而言,这是至关重要的一点,因为我想要对解码的原型实体进行某种验证,所以想知道是否有人有自定义数据验证或以任何方式覆盖/拦截解析阶段的经验?
一些基本的例子:
- 对于 int32 字段,以防它根本没有通过,所以我想处理这种情况并引发自定义异常,而不是默认 0
- 对于 int32 字段,我想强制执行允许的值范围,例如 100-1000,否则抛出解析异常
- 对于字符串字段,我想在解析/解码阶段强制执行最小长度
除了在 protobuf 包/API 之上编写自定义验证层之外,您建议如何执行此操作?我还是希望有一个扩展点但是还没有找到
【问题讨论】:
标签: c# protocol-buffers protobuf-csharp-port proto3