小编Dem*_*nia的帖子

MongoDB 序列化 Dictionary<MyEnum,object>

我有一些模型Dictionary<MyEnum, object>。当我尝试使用 C# 驱动程序插入 mongoDB 时,出现以下消息的异常:

使用 DictionaryRepresentation.Document 时,键值必须序列化为字符串。

当然,我可以添加属性[BsonDictionaryOptions(DictionaryRepresentation.ArrayOfArrays)]并且它可以工作,但我希望能够将枚举作为字符串持久化。

public MyEnum {
  A,
  B
}

[BsonDictionaryOptions(DictionaryRepresentation.Document)]
public Dictionary<MyEnum, object> MyData { get; set; }
Run Code Online (Sandbox Code Playgroud)

由于不同的原因,我想在 mongo 中拥有类似的东西。

{
   "MyData": {
      "B": "xxxx",
      "A": "xxxx"
   }
}
Run Code Online (Sandbox Code Playgroud)

对于单个枚举,我只能使用该[BsonRepresentation(BsonType.String)]属性,但是如何告诉驱动程序以获取字典将枚举键序列化为字符串?

c# serialization dictionary mongodb

7
推荐指数
3
解决办法
4443
查看次数

标签 统计

c# ×1

dictionary ×1

mongodb ×1

serialization ×1