在我的解决方案中,我非常依赖字典作为关键词。我发现很容易理解并阅读这种结构。
上述一个重大障碍是无法将其序列化。有关详细信息,请参阅Problems with Json Serialize Dictionary<Enum, Int32>。
我的问题是:
是否有一个同样可读和直观的模式,用内置的json序列化器替换json序列化的Dictionary<enunm,object>
?
今天我已将a.Instance.QueryableFields[Fields.Title]
替换为a.Instance.QueryableFields[ Fields.Title.ToString()]
。不是很优雅,它是错误的开放。
答案 0 :(得分:1)
序列化时,只需选择字符串值即可。它不是很整洁,但它有效。
a.Instance.QueryableFields.ToDictionary(x => x.Key.ToString(), x => x.Value)
答案 1 :(得分:-1)
你可以在这里轻松地用数组替换字典,就像在C#中枚举内部保存为整数一样:
public enum MyEnum { Zero=0, One, Two };
object[] dictionary = new object[3];
dictionary[(int)MyEnum.Zero] = 4;
编辑:(见评论)
您也可以将Dictionary<Enum, Object>
替换为Dictionary<Int, Object>
。