在解析阶段验证并覆盖默认值

sll

使用3.0.0-beta3版本的C#本机软件包,因为在解析阶段会分配官方文档的默认值,因此无法区分是否未传递任何值,出于我的目的,这是至关重要的一点,因为我想做一些解码原型实体的验证类型,因此想知道是否有人对数据进行自定义验证或以任何方式覆盖/拦截解析阶段有经验?

一些基本的例子:

  1. 对于int32字段,以防根本没有通过,所以我要处理这种情况并引发自定义异常,而不是默认值0
  2. 对于int32字段,我想强制执行100-1000之类的允许值范围,否则抛出解析异常
  3. 对于字符串字段,我想在解析/解码阶段强制执行最小长度

除了在protobuf程序包/ API上编写自定义验证层之外,您如何建议?我仍然希望有一个可扩展性点,但尚未找到

肯顿·瓦尔达(Kenton Varda)

验证需要在应用程序代码后解析中完成。解析器本身没有执行此操作的钩子。

Proto3不会区分默认值字段和未发送字段。实际上,在发送端,如果将该字段显式设置为其默认值,则不会对其进行编码。因此,没有办法在proto3中实现您的第一个规则。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

骨干模型默认值不会被模型数据覆盖

来自分类Dev

如何覆盖Django中继承的modelfield的默认值?

来自分类Dev

具有默认值的常规解析

来自分类Dev

覆盖实例var的默认值

来自分类Dev

扩展默认值,选项覆盖所有内容

来自分类Dev

以angularjs形式定义默认值,验证无效

来自分类Dev

验证输入值(如果与设置默认值不符)

来自分类Dev

如何覆盖预配器的默认值?

来自分类Dev

使用默认值覆盖CSS外观值

来自分类Dev

数据验证默认值

来自分类Dev

elementType道具类型验证默认值

来自分类Dev

Aeson使用先前解析的默认值解析JSON

来自分类Dev

当StoreGeneratedPattern =计算时,覆盖实体框架中的默认值

来自分类Dev

如何使用已解析的印刷文字覆盖表单默认值

来自分类Dev

在Rails表单输入字段中覆盖迁移默认值

来自分类Dev

jQuery验证插件-默认值和验证

来自分类Dev

覆盖实例var的默认值

来自分类Dev

在Mercurial中使用默认值覆盖分支

来自分类Dev

扩展默认值,选项覆盖所有内容

来自分类Dev

验证输入值(如果与设置默认值不符)

来自分类Dev

如何覆盖预配器的默认值?

来自分类Dev

logrotate:如何配置和覆盖默认值?

来自分类Dev

如何覆盖浏览器的CSS默认值?

来自分类Dev

CSS列表ID覆盖默认值

来自分类Dev

如何设置MANPATH而不覆盖默认值?

来自分类Dev

Emacs Elisp覆盖默认值

来自分类Dev

仅覆盖页面资源的图像裁剪默认值

来自分类Dev

如何覆盖下拉列表中的默认值

来自分类Dev

如何覆盖函数内部设置的默认值