MongoDB未知鉴别器值=>反序列化为JSonDocument

时间:2016-03-24 14:21:39

标签: c# json mongodb serialization

在MongoDB中,我有一个类型为object的属性MyProperty的类。

public MyClass
{
    public object MyProperty;
    public string Prop1;
    public DateTime Prop2;
    public int Prop3;
}

序列化到MongoDB工作没有任何问题,创建这种类型的JSon:

MyProperty" : {
                "_t" : "ExampleClass",
            [...]
}

但是当我尝试对其进行反序列化时,我收到以下错误:

  

反序列化类的MyProperty属性时发生错误   我的课:   未知的鉴别器值' ExampleClass'。

我想将MyProperty反序列化为简单的通用BsonDocument或字符串。

1 个答案:

答案 0 :(得分:4)

_t存储您的自定义类名。您需要注册此自定义类映射,以便mongo知道反序列化时要使用的对象。这是一个代码示例(应该只需要在应用程序的开头调用一次):

if (!BsonClassMap.IsClassMapRegistered(typeof(ExampleClass)))
{
   BsonClassMap.RegisterClassMap<ExampleClass>();
}