使用官方C#驱动程序序列化/反序列化MongoDB Bson文档

时间:2013-11-13 13:19:15

标签: c# json mongodb serialization bson

我最近开始使用MongoDB的官方C#驱动程序开发MongoDB。 我有以下类/接口定义:

public interface IDependent {
   int Index { get; set; }
   string Name { get; set; }
}

public class Person {
   int Id { get; set; }
   string Name {get; set; }
   IDependent[] Dependents { get; set; }
}
public class Dependent : IDependent {
    int Index {get; set; }
    string Name { get; set; }
}

使用此类/接口结构,插入具有IDependent作品数组的Person记录。但是当我尝试检索Person对象时,mongoDB C#驱动程序抱怨“IDEpendent的Unknown Discriminator”。

如果我的理解是正确的,则Deserializer无法确定必须为Dependents数组中的每个元素创建其实例的类类型。

如何映射IDependent的类类型是Dependent,以便mongoDB驱动程序可以正确反序列化它?

1 个答案:

答案 0 :(得分:1)

我想出来了。我所要做的就是注册Dependent类,它就像在

中一样
BsonClassMap.RegisterClassMap<Dependent>();