WriteEndArray() public method

Writes the end of a BSON array to the writer.
public WriteEndArray ( ) : void
return void
コード例 #1
0
 public void TestArrayWithNestedEmptyArray()
 {
     var document = new BsonDocument();
     using (var writer = new BsonDocumentWriter(document))
     {
         writer.WriteStartDocument();
         writer.WriteStartArray("a");
         writer.WriteStartArray();
         writer.WriteEndArray();
         writer.WriteEndArray();
         writer.WriteEndDocument();
     }
     var json = document.ToJson();
     var expected = "{ 'a' : [[]] }".Replace("'", "\"");
     Assert.Equal(expected, json);
 }
コード例 #2
0
        public static BsonArray SerializeValues(this ISerializationExpression field, IEnumerable values)
        {
            var tempDocument = new BsonDocument();
            using (var bsonWriter = new BsonDocumentWriter(tempDocument))
            {
                var context = BsonSerializationContext.CreateRoot(bsonWriter);
                bsonWriter.WriteStartDocument();
                bsonWriter.WriteName("values");
                bsonWriter.WriteStartArray();
                foreach (var value in values)
                {
                    field.Serializer.Serialize(context, value);
                }
                bsonWriter.WriteEndArray();
                bsonWriter.WriteEndDocument();

                return (BsonArray)tempDocument[0];
            }
        }
コード例 #3
0
 public void TestArrayWithTwoNestedArrays()
 {
     var document = new BsonDocument();
     using (var writer = new BsonDocumentWriter(document))
     {
         writer.WriteStartDocument();
         writer.WriteStartArray("a");
         writer.WriteStartArray();
         writer.WriteString("a");
         writer.WriteString("b");
         writer.WriteEndArray();
         writer.WriteStartArray();
         writer.WriteString("c");
         writer.WriteStartDocument();
         writer.WriteInt32("d", 9);
         writer.WriteEndDocument();
         writer.WriteEndArray();
         writer.WriteEndArray();
         writer.WriteEndDocument();
     }
     var json = document.ToJson();
     var expected = "{ 'a' : [['a', 'b'], ['c', { 'd' : 9 }]] }".Replace("'", "\"");
     Assert.Equal(expected, json);
 }
コード例 #4
0
 public void TestTwoNestedEmptyArrays()
 {
     var document = new BsonDocument();
     using (var writer = new BsonDocumentWriter(document))
     {
         writer.WriteStartDocument();
         writer.WriteStartDocument("nested");
         writer.WriteStartArray("a");
         writer.WriteEndArray();
         writer.WriteStartArray("b");
         writer.WriteEndArray();
         writer.WriteEndDocument();
         writer.WriteEndDocument();
     }
     var json = document.ToJson();
     var expected = "{ 'nested' : { 'a' : [], 'b' : [] } }".Replace("'", "\"");
     Assert.AreEqual(expected, json);
 }
コード例 #5
0
 public void TestArrayWithTwoElements()
 {
     var document = new BsonDocument();
     using (var writer = new BsonDocumentWriter(document))
     {
         writer.WriteStartDocument();
         writer.WriteStartArray("a");
         writer.WriteInt32(1);
         writer.WriteInt32(2);
         writer.WriteEndArray();
         writer.WriteEndDocument();
     }
     var json = document.ToJson();
     var expected = "{ 'a' : [1, 2] }".Replace("'", "\"");
     Assert.AreEqual(expected, json);
 }
コード例 #6
0
        /// <summary>
        /// Serializes the values.
        /// </summary>
        /// <param name="values">The values.</param>
        /// <returns>The serialized values.</returns>
        public BsonArray SerializeValues(IEnumerable values)
        {
            var tempDocument = new BsonDocument();
            using (var bsonWriter = new BsonDocumentWriter(tempDocument))
            {
                var context = BsonSerializationContext.CreateRoot<BsonDocument>(bsonWriter);
                bsonWriter.WriteStartDocument();
                bsonWriter.WriteName("values");
                bsonWriter.WriteStartArray();
                foreach (var value in values)
                {
                    context.SerializeWithChildContext(_serializer, value);
                }
                bsonWriter.WriteEndArray();
                bsonWriter.WriteEndDocument();

                return tempDocument[0].AsBsonArray;
            }
        }