繁体   English   中英

如何修复ProtoBuf-Net中的枚举错误

[英]How to Fix Enum Error in ProtoBuf-Net

尝试序列化时出现此错误。

序列化错误消息

这个问题的答案:

如何在Protobuf.Net中映射系统枚举

表示这与Flags枚举有关,并且应在V2中进行处理。 此处报告的Enum不是Flags Enum:

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个值。 我还检查了是否有与该枚举的未使用次数相关的16个ProtoMember ID-没有。 枚举的该枚举的所有用法均为私有字段。

我将对如何处理此问题提供一些指导。

谢谢

好吧-这很尴尬。 问题是确实生成了16的值。 所以看来这是我个人的某种编程错误。 错误消息是说枚举中没有16的值,这是正确的。

现在,我可以回去尝试并修复我的代码。 Protobuf-Net无处不在。

我想这可能对看到此错误的其他人有用。 找出枚举值在哪里使用,并查看代码是否发送了无效值。 我不明白的是为什么在尝试为枚举设置无效索引时没有看到某种运行时错误。 我现在需要调查。 这是一个答案

为什么将int强制转换为无效的枚举值不会引发异常?

似乎没有为无效的枚举值生成任何错误,但protobuf-net确实找到了它们

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM