public override void Serialize( BsonSerializationContext context, BsonSerializationArgs args, OneOrMany <T> value ) { // If it's only a single value, just use the default serializer of // that type else use an array serializer. if (value.HasMany) { base.Serialize(context, args, value.ToArray()); } else { base.Serialize(context, args, value.First()); } }