为了账号安全,请及时绑定邮箱和手机立即绑定

protobuf-net 什么时候需要使用 ProtoEnum 属性?

protobuf-net 什么时候需要使用 ProtoEnum 属性?

C#
交互式爱情 2023-04-16 10:14:23
protobuf -net包含一个[ProtoEnum]可用于修饰枚举成员的属性。何时以及如何使用它?在正常的使用场景中,enum 成员序列化似乎工作得很好(只要 enum 本身有一个[ProtoContract]装饰它)。
查看完整描述

1 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

您唯一需要的时间是:

  1. 当您使用 .proto => C# 或 C# => .proto,并且您希望 .proto 中的名称与实际enum声明不同时

  2. 当你出于某种原因想要将线路上的数字映射到你的类型模型中的enum数字时,即线路上的值(对于相同数据的其他用户)以某种方式对你的应用程序12更有用20

我通常强烈反对第二种选择;它使事情变得过于复杂,意味着它需要在两个方向上应用一些额外的逻辑。现在“proto3”改变了无法识别的值的预期行为,尤其如此;在“proto2”中,这是为了指示错误,但在“proto3”中,你只是为了获取值。如果您正在应用地图,则无法执行此操作。


查看完整回答
反对 回复 2023-04-16
  • 1 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信