How to deserialize a BsonDocument object back to class

不想你离开。 提交于 2019-11-28 16:43:41

问题


How do I deserialize a BsonDocument object back to the class after getting it from the server?

QueryDocument _document = new QueryDocument("key", "value");
MongoCursor<BsonDocument> _documentsReturned = _collection.FindAs<BsonDocument>(_document);

foreach (BsonDocument _document1 in _documentsReturned)
{
    //deserialize _document1
    //?
}

Do I deserialize using a BsonReader?


回答1:


There are three ways actually:

1.Specify type you want to load directly in FindAs<>

var docs = _collection.FindAs<MyType>(_document);

2.Deserialize document via BsonSerializer:

BsonSerializer.Deserialize<MyType>(doc);

3.Map bson document manually to your class:

var myClass = new Mytype();
myClass.Name = bsonDoc["name"].AsString;

For most cases you are okay with first approach. But sometimes, when your documents is unstructured, you may need third approach.



来源:https://stackoverflow.com/questions/9478613/how-to-deserialize-a-bsondocument-object-back-to-class

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!