Comment désérialiser un objet BsonDocument dans la classe après l'avoir obtenu du serveur?
QueryDocument _document = new QueryDocument("key", "value");
MongoCursor<BsonDocument> _documentsReturned = _collection.FindAs<BsonDocument>(_document);
foreach (BsonDocument _document1 in _documentsReturned)
{
//deserialize _document1
//?
}
Dois-je désérialiser en utilisant un BsonReader?
Il y a en fait trois façons:
1.Spécifiez le type que vous souhaitez charger directement dans FindAs<>
var docs = _collection.FindAs<MyType>(_document);
2. Désérialisez le document via BsonSerializer
:
BsonSerializer.Deserialize<MyType>(doc);
3.Mappez manuellement le document bson à votre classe:
var myClass = new Mytype();
myClass.Name = bsonDoc["name"].AsString;
Dans la plupart des cas, vous êtes d'accord avec la première approche. Mais parfois, lorsque vos documents ne sont pas structurés, vous pouvez avoir besoin d'une troisième approche.