@@ -24,7 +24,11 @@ namespace MongoDB.Bson.Serialization.Serializers
24
24
/// Represents a serializer for dictionaries.
25
25
/// </summary>
26
26
/// <typeparam name="TDictionary">The type of the dictionary.</typeparam>
27
- public abstract class DictionarySerializerBase < TDictionary > : ClassSerializerBase < TDictionary > , IBsonDictionarySerializer where TDictionary : class , IDictionary
27
+ public abstract class DictionarySerializerBase < TDictionary > :
28
+ ClassSerializerBase < TDictionary > ,
29
+ IBsonDocumentSerializer ,
30
+ IBsonDictionarySerializer
31
+ where TDictionary : class , IDictionary
28
32
{
29
33
// private constants
30
34
private static class Flags
@@ -110,7 +114,24 @@ public IBsonSerializer ValueSerializer
110
114
get { return _valueSerializer ; }
111
115
}
112
116
113
- // public methods
117
+ // public methods
118
+ /// <inheritdoc/>
119
+ public bool TryGetMemberSerializationInfo ( string memberName , out BsonSerializationInfo serializationInfo )
120
+ {
121
+ if ( _dictionaryRepresentation != DictionaryRepresentation . Document )
122
+ {
123
+ serializationInfo = null ;
124
+ return false ;
125
+ }
126
+
127
+ serializationInfo = new BsonSerializationInfo (
128
+ memberName ,
129
+ _valueSerializer ,
130
+ _valueSerializer . ValueType ) ;
131
+ return true ;
132
+ }
133
+
134
+ // protected methods
114
135
/// <summary>
115
136
/// Deserializes a value.
116
137
/// </summary>
@@ -314,7 +335,11 @@ private string SerializeKeyString(object key)
314
335
/// <typeparam name="TDictionary">The type of the dictionary.</typeparam>
315
336
/// <typeparam name="TKey">The type of the keys.</typeparam>
316
337
/// <typeparam name="TValue">The type of the values.</typeparam>
317
- public abstract class DictionarySerializerBase < TDictionary , TKey , TValue > : ClassSerializerBase < TDictionary > , IBsonDictionarySerializer where TDictionary : class , IDictionary < TKey , TValue >
338
+ public abstract class DictionarySerializerBase < TDictionary , TKey , TValue > :
339
+ ClassSerializerBase < TDictionary > ,
340
+ IBsonDocumentSerializer ,
341
+ IBsonDictionarySerializer
342
+ where TDictionary : class , IDictionary < TKey , TValue >
318
343
{
319
344
// private constants
320
345
private static class Flags
@@ -401,6 +426,23 @@ public IBsonSerializer<TValue> ValueSerializer
401
426
}
402
427
403
428
// public methods
429
+ /// <inheritdoc/>
430
+ public bool TryGetMemberSerializationInfo ( string memberName , out BsonSerializationInfo serializationInfo )
431
+ {
432
+ if ( _dictionaryRepresentation != DictionaryRepresentation . Document )
433
+ {
434
+ serializationInfo = null ;
435
+ return false ;
436
+ }
437
+
438
+ serializationInfo = new BsonSerializationInfo (
439
+ memberName ,
440
+ _valueSerializer ,
441
+ _valueSerializer . ValueType ) ;
442
+ return true ;
443
+ }
444
+
445
+ // protected methods
404
446
/// <summary>
405
447
/// Deserializes a value.
406
448
/// </summary>
0 commit comments