尝试序列化时出现此错误。
这个问题的答案:
How to map System Enum's in Protobuf.Net
表示这与Flags
枚举有关,应该在V2中处理。此处报告的枚举不是Flags
枚号:
public enum RunwayDesignator {
NONE = 0,
LEFT = 1,
RIGHT = 2,
CENTER = 3,
WATER = 4,
C = 5,
L = 6,
R = 7,
W = 8,
A = 9,
B = 10,
NOT_APP = 99
}
我假设“16”指的是Enum中的某些内容,尽管没有16个值。我还检查了是否有任何ProtoMember ID为16与此枚举的unages相关 - 没有。序列化的这个枚举的所有用法都是私有字段。
我希望得到一些关于如何处理这个问题的指导。
谢谢
答案 0 :(得分:1)
所以我现在可以回去尝试修复我的代码了。 Protobuf-Net无处可怜。
我想这对于看到此错误的其他人可能会有用。找出枚举值的使用位置,并查看代码是否发送了无效值。我不明白的是为什么我在尝试为枚举设置无效索引时没有看到某种运行时错误。我现在需要调查一下。这是答案
Why does casting int to invalid enum value NOT throw exception?
似乎没有为无效的枚举值生成错误,但是protobuf-net确实找到了它们