我有一个看起来像这样的课程:
public class Object
{
[JsonConverter(typeof(ObjectIdConverter))]
public ObjectId Id { get; set; }
public List<Record> Records { get; set; }
}
public class Record
{
[JsonConverter(typeof(ObjectIdConverter))]
public ObjectId Id { get; set; }
public Dictionary<string, object> Values { get; set; }
}
我试图反序列化以下json:
{{
"Id": "5791fad6fcef4434d0318d69",
"Values": {
"Name": "some name....",
"Account": {
"Value": "123",
"Name": "Test Account"
}
}
}}
使用mongodb c#驱动程序:
var record = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<Record>(BsonDocument.Parse(value.ToString()));
但我一直收到错误:元素&#39; Id&#39;与Record类的任何字段或属性都不匹配。
有关为什么它不会识别id属性的任何想法?
答案 0 :(得分:2)
事实证明,如果将属性名称更改为以下内容,则对象将被正确反序列化:
public ObjectId _id { get; set; }
答案 1 :(得分:-1)
尝试将BsonId
属性添加到您的Id字段。
public class Object
{
[BsonId]
[JsonConverter(typeof(ObjectIdConverter))]
public ObjectId Id { get; set; }
public List<Record> Records { get; set; }
}