【发布时间】:2016-06-22 18:13:17
【问题描述】:
我有一个 UserProfile C# 类,其中包含一个公共列表 List<System.Enum> Bonuses;,其每个元素都属于几种具体类型的枚举之一:BonusUI、BonusMusic、BonusMode 等。
我正在使用 Json.NET,我想序列化/反序列化 UserProfile 对象。我将[JsonConverter(typeof(StringEnumConverter))] 应用于每个具体的枚举类型,以便将它们保存为字符串而不是整数。然而,这还不够,因为保存的枚举值甚至不包含它们的确切类型。
...
"Bonuses": [
"MainTheme",
"ClassicUI",
"WoodUI",
"Rampage",
"SoleSurvivor"
],
...
例如,当反序列化器在列表中找到 BonusMusic.MainTheme(序列化为“MainTheme”)时看到此错误:
将值“MainTheme”转换为类型“System.Enum”时出错。
我该如何解决这个问题?
【问题讨论】:
-
我现在看到它确实与那个问题非常相似。不幸的是,必须为此创建自定义代码,但我想这是一个特定的情况。
标签: c# json serialization enums json.net