private string WriteAndReadLenString(string val) { var ms = new MemoryStream(); var bs = new BsonWriter(ms, new BsonDocumentDescriptor()); var w = new BinaryWriter(ms); var byteCount = bs.CalculateSize(val, false); w.Write(byteCount); bs.Write(val, false); ms.Seek(0, SeekOrigin.Begin); var reader = new BsonReader(ms, new BsonDocumentBuilder()); return(reader.ReadLengthString()); }