@@ -141,18 +141,6 @@ public static IBsonSerializer GetSerializerForValueType(IBsonSerializer fieldSer
141
141
return ConvertIfPossibleSerializer . Create ( valueType , fieldType , fieldSerializer , serializerRegistry ) ;
142
142
}
143
143
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
-
156
144
// private static methods
157
145
private static bool HasStringRepresentation ( IBsonSerializer serializer )
158
146
{
@@ -313,7 +301,7 @@ public override void Serialize(BsonSerializationContext context, BsonSerializati
313
301
}
314
302
}
315
303
316
- internal class IEnumerableSerializer < TItem > : SerializerBase < IEnumerable < TItem > >
304
+ internal class IEnumerableSerializer < TItem > : SerializerBase < IEnumerable < TItem > > , IBsonArraySerializer
317
305
{
318
306
private readonly IBsonSerializer < TItem > _itemSerializer ;
319
307
@@ -351,6 +339,12 @@ public override void Serialize(BsonSerializationContext context, BsonSerializati
351
339
bsonWriter . WriteEndArray ( ) ;
352
340
}
353
341
}
342
+
343
+ public bool TryGetItemSerializationInfo ( out BsonSerializationInfo serializationInfo )
344
+ {
345
+ serializationInfo = new BsonSerializationInfo ( null , _itemSerializer , typeof ( TItem ) ) ;
346
+ return true ;
347
+ }
354
348
}
355
349
356
350
internal class NullableEnumConvertingSerializer < TFrom , TTo > : SerializerBase < Nullable < TFrom > > where TFrom : struct where TTo : struct
0 commit comments