/// <summary> /// Positions the reader to a string element by name. /// </summary> /// <param name="reader">The reader.</param> /// <param name="name">The name of the element.</param> /// <returns>True if the element was found.</returns> public static string FindStringElement(this IBsonReader reader, string name) { BsonType bsonType; while ((bsonType = reader.ReadBsonType()) != BsonType.EndOfDocument) { if (bsonType == BsonType.String) { var elementName = reader.ReadName(); if (elementName == name) { return(reader.ReadString()); } else { reader.SkipValue(); } } else { reader.SkipName(); reader.SkipValue(); } } return(null); }
public static T Read <T>(this IBsonReader reader) { reader.ReadBsonType(); reader.SkipName(); return(BsonSerializer.Deserialize <T>(reader)); }