protected Document Deserialize(string base64, BsonReaderSettings settings) { using (var mem = new MemoryStream(Convert.FromBase64String(base64))) { var reader = new BsonReader(mem, settings); return((Document)reader.ReadObject()); } }
protected T Deserialize <T>(string base64) { using (var mem = new MemoryStream(Convert.FromBase64String(base64))) { var reader = new BsonReader(mem, new BsonClassMapBuilder(MappingStore, typeof(T))); return((T)reader.ReadObject()); } }
public void TestReadEmptyDocument() { var buf = HexToBytes("0500000000"); var ms = new MemoryStream(buf); var reader = new BsonReader(ms, new BsonDocumentBuilder()); var doc = (Document)reader.ReadObject(); Assert.IsNotNull(doc); }
public void TestReadDocWithDocs() { // Document doc = new Document().Append("a", new Document().Append("b", new Document().Append("c",new Document()))); // Console.WriteLine(ConvertDocToHex(doc)); var buf = HexToBytes("1D000000036100150000000362000D0000000363000500000000000000"); var ms = new MemoryStream(buf); var reader = new BsonReader(ms, new BsonDocumentBuilder()); var doc = (Document)reader.ReadObject(); Assert.IsNotNull(doc, "Document was null"); Assert.AreEqual(buf.Length, reader.Position); Assert.IsTrue(doc.ContainsKey("a")); }
public void TestReadMultiElementDocument() { var buf = HexToBytes("2D000000075F6964004A753AD8FAC16EA58B290351016100000000000000F03F02620005000000746573740000"); var ms = new MemoryStream(buf); var reader = new BsonReader(ms, new BsonDocumentBuilder()); var doc = (Document)reader.ReadObject(); Assert.IsNotNull(doc, "Document was null"); Assert.IsTrue(doc.ContainsKey("_id")); Assert.IsTrue(doc.ContainsKey("a")); Assert.IsTrue(doc.ContainsKey("b")); Assert.AreEqual("4a753ad8fac16ea58b290351", (doc["_id"]).ToString()); Assert.AreEqual(1, Convert.ToInt32(doc["a"])); Assert.AreEqual("test", doc["b"]); }
/// <summary> /// Reads the specified stream. /// </summary> /// <param name="stream">The stream.</param> public void Read(Stream stream) { stream = new BufferedStream(stream, 256); var reader = new BinaryReader(stream); Header = ReadHeader(reader); ResponseFlag = (ResponseFlags)reader.ReadInt32(); CursorId = reader.ReadInt64(); StartingFrom = reader.ReadInt32(); NumberReturned = reader.ReadInt32(); var breader = new BsonReader(stream, _readerSettings); var documents = new List <T>(); for (var num = 0; num < NumberReturned; num++) { documents.Add((T)breader.ReadObject()); } Documents = documents.ToArray(); }