@@ -262,21 +262,20 @@ private TDictionary DeserializeDocumentRepresentation(BsonDeserializationContext
262
262
bsonReader . ReadStartDocument ( ) ;
263
263
while ( bsonReader . ReadBsonType ( ) != BsonType . EndOfDocument )
264
264
{
265
- var key = DeserializeKeyString ( bsonReader . ReadName ( ) ) ;
265
+ var key = DeserializeKeyString ( bsonReader . ReadName ( ) , context . SerializationDomain ) ;
266
266
var value = _valueSerializer . Deserialize ( context ) ;
267
267
dictionary . Add ( key , value ) ;
268
268
}
269
269
bsonReader . ReadEndDocument ( ) ;
270
270
return dictionary ;
271
271
}
272
272
273
- private object DeserializeKeyString ( string keyString )
273
+ private object DeserializeKeyString ( string keyString , IBsonSerializationDomain serializationDomain )
274
274
{
275
275
var keyDocument = new BsonDocument ( "k" , keyString ) ;
276
276
using ( var keyReader = new BsonDocumentReader ( keyDocument ) )
277
277
{
278
- //QUESTION Is it correct we only need a default domain here?
279
- var context = BsonDeserializationContext . CreateRoot ( keyReader , BsonSerializer . DefaultSerializationDomain ) ;
278
+ var context = BsonDeserializationContext . CreateRoot ( keyReader , serializationDomain ) ;
280
279
keyReader . ReadStartDocument ( ) ;
281
280
keyReader . ReadName ( "k" ) ;
282
281
var key = _keySerializer . Deserialize ( context ) ;
@@ -321,19 +320,18 @@ private void SerializeDocumentRepresentation(BsonSerializationContext context, T
321
320
bsonWriter . WriteStartDocument ( ) ;
322
321
foreach ( DictionaryEntry dictionaryEntry in value )
323
322
{
324
- bsonWriter . WriteName ( SerializeKeyString ( dictionaryEntry . Key ) ) ;
323
+ bsonWriter . WriteName ( SerializeKeyString ( dictionaryEntry . Key , context . SerializationDomain ) ) ;
325
324
_valueSerializer . Serialize ( context , dictionaryEntry . Value ) ;
326
325
}
327
326
bsonWriter . WriteEndDocument ( ) ;
328
327
}
329
328
330
- private string SerializeKeyString ( object key )
329
+ private string SerializeKeyString ( object key , IBsonSerializationDomain serializationDomain )
331
330
{
332
331
var keyDocument = new BsonDocument ( ) ;
333
332
using ( var keyWriter = new BsonDocumentWriter ( keyDocument ) )
334
333
{
335
- //QUESTION Is it correct we only need a default domain here?
336
- var context = BsonSerializationContext . CreateRoot ( keyWriter , BsonSerializer . DefaultSerializationDomain ) ;
334
+ var context = BsonSerializationContext . CreateRoot ( keyWriter , serializationDomain ) ;
337
335
keyWriter . WriteStartDocument ( ) ;
338
336
keyWriter . WriteName ( "k" ) ;
339
337
_keySerializer . Serialize ( context , key ) ;
@@ -669,7 +667,7 @@ private TDictionary DeserializeDocumentRepresentation(BsonDeserializationContext
669
667
bsonReader . ReadStartDocument ( ) ;
670
668
while ( bsonReader . ReadBsonType ( ) != BsonType . EndOfDocument )
671
669
{
672
- var key = DeserializeKeyString ( bsonReader . ReadName ( ) ) ;
670
+ var key = DeserializeKeyString ( bsonReader . ReadName ( ) , context . SerializationDomain ) ;
673
671
var value = _lazyValueSerializer . Value . Deserialize ( context ) ;
674
672
accumulator . Add ( new KeyValuePair < TKey , TValue > ( key , value ) ) ;
675
673
}
@@ -678,13 +676,12 @@ private TDictionary DeserializeDocumentRepresentation(BsonDeserializationContext
678
676
return FinalizeAccumulator ( accumulator ) ;
679
677
}
680
678
681
- private TKey DeserializeKeyString ( string keyString )
679
+ private TKey DeserializeKeyString ( string keyString , IBsonSerializationDomain serializationDomain )
682
680
{
683
681
var keyDocument = new BsonDocument ( "k" , keyString ) ;
684
682
using ( var keyReader = new BsonDocumentReader ( keyDocument ) )
685
683
{
686
- //QUESTION Is it correct we only need a default domain here?
687
- var context = BsonDeserializationContext . CreateRoot ( keyReader , BsonSerializer . DefaultSerializationDomain ) ;
684
+ var context = BsonDeserializationContext . CreateRoot ( keyReader , serializationDomain ) ;
688
685
keyReader . ReadStartDocument ( ) ;
689
686
keyReader . ReadName ( "k" ) ;
690
687
var key = _lazyKeySerializer . Value . Deserialize ( context ) ;
@@ -729,19 +726,18 @@ private void SerializeDocumentRepresentation(BsonSerializationContext context, T
729
726
bsonWriter . WriteStartDocument ( ) ;
730
727
foreach ( var keyValuePair in value )
731
728
{
732
- bsonWriter . WriteName ( SerializeKeyString ( keyValuePair . Key ) ) ;
729
+ bsonWriter . WriteName ( SerializeKeyString ( keyValuePair . Key , context . SerializationDomain ) ) ;
733
730
_lazyValueSerializer . Value . Serialize ( context , keyValuePair . Value ) ;
734
731
}
735
732
bsonWriter . WriteEndDocument ( ) ;
736
733
}
737
734
738
- private string SerializeKeyString ( TKey key )
735
+ private string SerializeKeyString ( TKey key , IBsonSerializationDomain serializationDomain )
739
736
{
740
737
var keyDocument = new BsonDocument ( ) ;
741
738
using ( var keyWriter = new BsonDocumentWriter ( keyDocument ) )
742
739
{
743
- //QUESTION Is it correct we only need a default domain here?
744
- var context = BsonSerializationContext . CreateRoot ( keyWriter , BsonSerializer . DefaultSerializationDomain ) ;
740
+ var context = BsonSerializationContext . CreateRoot ( keyWriter , serializationDomain ) ;
745
741
keyWriter . WriteStartDocument ( ) ;
746
742
keyWriter . WriteName ( "k" ) ;
747
743
_lazyKeySerializer . Value . Serialize ( context , key ) ;
0 commit comments