gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 00:34:35 26 4
gpt4 key购买 nike

我有一个类,它有一个类型为 System.IO.FileAttribute(枚举)的属性

使用 protobuf-net 序列化后出现错误:

No wire-value is mapped to the enum System.IO.FileAttributes.Hidden, System, Archive

我将如何将系统枚举映射到与成员的契约(Contract)?

最佳答案

那是一个 [Flags] 枚举,它在 protobuf 中并没有真正的直接映射(由 google 定义)。我会简单地重新公开为 int:

public FileAttributes Attributes {get;set;}

[ProtoMember(12)] // whavever
private int AttributesSerialized {
get { return (int)Attributes; }
set { Attributes = (FileAttributes)value; }
}

此外,IIRC,我已经编写了 v2 代码以自动在 [Flags] 上以这种方式运行,并可选择允许传递枚举(自动视为基础值)。

关于.net - 如何在 Protobuf.Net 中映射系统枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5204324/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com