internal void WriteAsBSONCore(Stream stream) { var docSize = this.GetByteSize(false);//gets cached value BinUtils.WriteInt32(stream, docSize); var cnt = m_List.Count; for (var i = 0; i < cnt; i++) { var elm = m_List[i]; elm.WriteToStream(stream); } BinUtils.WriteTerminator(stream); //x00 }
protected internal override void WriteValueToStream(Stream stream) { //Arrays are written as surrogated documents var valueSize = getValueByteSize(false); BinUtils.WriteInt32(stream, valueSize); for (int i = 0; i < Value.Length; i++) { var element = Value[i]; BinUtils.WriteByte(stream, (byte)element.ElementType); BinUtils.WriteCString(stream, i.ToString(CultureInfo.InvariantCulture)); element.WriteValueToStream(stream); } BinUtils.WriteTerminator(stream); }