@@ -141,18 +141,6 @@ public static IBsonSerializer GetSerializerForValueType(IBsonSerializer fieldSer
141141 return ConvertIfPossibleSerializer . Create ( valueType , fieldType , fieldSerializer , serializerRegistry ) ;
142142 }
143143
144- public static IBsonSerializer GetSerializerForValueType ( IBsonSerializer fieldSerializer , IBsonSerializerRegistry serializerRegistry , Type valueType , object value )
145- {
146- if ( ! valueType . GetTypeInfo ( ) . IsValueType && value == null )
147- {
148- return fieldSerializer ;
149- }
150- else
151- {
152- return GetSerializerForValueType ( fieldSerializer , serializerRegistry , valueType , allowScalarValueForArrayField : false ) ;
153- }
154- }
155-
156144 // private static methods
157145 private static bool HasStringRepresentation ( IBsonSerializer serializer )
158146 {
@@ -313,7 +301,7 @@ public override void Serialize(BsonSerializationContext context, BsonSerializati
313301 }
314302 }
315303
316- internal class IEnumerableSerializer < TItem > : SerializerBase < IEnumerable < TItem > >
304+ internal class IEnumerableSerializer < TItem > : SerializerBase < IEnumerable < TItem > > , IBsonArraySerializer
317305 {
318306 private readonly IBsonSerializer < TItem > _itemSerializer ;
319307
@@ -351,6 +339,12 @@ public override void Serialize(BsonSerializationContext context, BsonSerializati
351339 bsonWriter . WriteEndArray ( ) ;
352340 }
353341 }
342+
343+ public bool TryGetItemSerializationInfo ( out BsonSerializationInfo serializationInfo )
344+ {
345+ serializationInfo = new BsonSerializationInfo ( null , _itemSerializer , typeof ( TItem ) ) ;
346+ return true ;
347+ }
354348 }
355349
356350 internal class NullableEnumConvertingSerializer < TFrom , TTo > : SerializerBase < Nullable < TFrom > > where TFrom : struct where TTo : struct
0 commit comments