假设这是 2 个 Bson 文档的集合
{
"_id": "...",
"name": "Test1",
"sub": {
"street": "134 Fake Street",
"city": "NoWhere"
}
},
{
"_id": "...",
"name": "Test2",
"sub": {
"height": "10",
"width": "20",
"sub2": {
"type": "something"
}
}
}
其中第一层是结构化类,但子层可以是完全非结构化的,并且可以有进一步嵌套的文档数层深。
如何将此文档反序列化为 C# 类?我见过的所有样本都假设嵌套文档中有一些结构。
下面的类给出了一个错误:
public class Report
{
[BsonId]
public ObjectId _id { get; set; }
public string name { get; set; }
public BsonDocument sub { get; set; }
}
不应使用数据协定名称“...”键入“MongoDB.Bson.BsonString”。考虑使用 DataContractResolver 或将任何静态未知的类型添加到已知类型列表中 - 例如,通过使用 KnownTypeAttribute 属性或将它们添加到传递给 DataContractSerializer 的已知类型列表中。
编辑
我正在尝试做的可能完全是胡说八道。仅使用一个 BsonDocument 并在没有结构化类的情况下手动处理所有内容是否更好?