我最近开始使用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驱动程序可以正确反序列化它?
答案 0 :(得分:1)
我想出来了。我所要做的就是注册Dependent类,它就像在
中一样BsonClassMap.RegisterClassMap<Dependent>();