将Guid序列化为MongoDB作为BsonString而不是BinData?

时间:2016-02-01 17:06:56

标签: c# mongodb serialization

我有一个具有以下属性的类

[BsonId]
public Guid EventId { get; private set; }

我想使用ToBsonDocument方法将具有此属性的类序列化(并反序列化)到MongoDB。虽然通过使用默认的串行器,但_id字段的结果BSON类型为

"_id" : BinDate(3, "wX9ZnP0ApEWF0d5aXLgiUA==")

我希望将其存储为BsonString。我计划将来创建一个自定义SerializerBase<>扩展类,以便将字符串正确反序列化为Guid我还没有到达那里。

我知道我可以简单地将我的属性更改为String

[BsonId]
public String EventId { get; private set; }

但我想将其保留为Guid。我想解决我的问题我需要使用序列化标签,但我不确定哪一个,任何想法?

1 个答案:

答案 0 :(得分:0)

实际上,在我发布这个问题后,我立刻找到了答案。

通过使用标签BsonRepresentation,我可以指定我希望MongoDB在序列化数据时使用的BSON数据类型。

[BsonRepresentation(BsonType.String)]