【发布时间】:2016-08-27 13:26:00
【问题描述】:
我有一些Dictionary<MyEnum, object> 的模型。
当我尝试使用 C# 驱动程序插入 mongoDB 时,出现异常并显示以下消息:
当使用 DictionaryRepresentation.Document 键值必须序列化为字符串。
当然,我可以添加属性[BsonDictionaryOptions(DictionaryRepresentation.ArrayOfArrays)] 并且它可以工作,但我希望能够将枚举作为字符串持久化。
public MyEnum {
A,
B
}
[BsonDictionaryOptions(DictionaryRepresentation.Document)]
public Dictionary<MyEnum, object> MyData { get; set; }
出于不同的原因,我想在 mongo 中拥有类似的东西。
{
"MyData": {
"B": "xxxx",
"A": "xxxx"
}
}
对于单个枚举,我只能使用[BsonRepresentation(BsonType.String)] 属性,但是如何告诉驱动程序字典将枚举键序列化为字符串?
【问题讨论】:
-
public Dictionary<String, object> MyData { get; set; }然后你传递MyEnum.A.toString()或使用整数。 -
谢谢,我已经考虑过了,但我正在寻找一个可以轻松添加的通用属性,但我不知道如何做到这一点或一个会议包。
标签: c# mongodb dictionary serialization