public override void Serialize(
BsonWriter bsonWriter,
Type nominalType,
object value,
IBsonSerializationOptions options)
{
if (value == null)
{
throw new ArgumentNullException("value");
}
var rawBsonArray = value as RawBsonArray;
if (rawBsonArray != null)
{
RawBsonArraySerializer.Instance.Serialize(bsonWriter, nominalType, value, options);
return;
}
var array = (BsonArray)value;
bsonWriter.WriteStartArray();
for (int i = 0; i < array.Count; i++)
{
BsonValueSerializer.Instance.Serialize(bsonWriter, typeof(BsonValue), array[i], null);
}
bsonWriter.WriteEndArray();
}
}