1414*/
1515
1616using System ;
17- using System . Net ;
1817using MongoDB . Bson . IO ;
1918
2019namespace MongoDB . Bson . Serialization
@@ -34,7 +33,6 @@ public class BsonDeserializationContext
3433 // constructors
3534 private BsonDeserializationContext (
3635 IBsonReader reader ,
37- IBsonSerializationDomain serializationDomain ,
3836 bool allowDuplicateElementNames ,
3937 IBsonSerializer dynamicArraySerializer ,
4038 IBsonSerializer dynamicDocumentSerializer )
@@ -44,8 +42,12 @@ private BsonDeserializationContext(
4442 _dynamicArraySerializer = dynamicArraySerializer ;
4543 _dynamicDocumentSerializer = dynamicDocumentSerializer ;
4644
47- _serializationDomain = serializationDomain ; //FP Using this version to find error in an easier way for now
48- //_serializationDomain = serializationDomain ?? BsonSerializer.DefaultSerializationDomain;
45+ if ( reader is IBsonReaderInternal readerInternal )
46+ {
47+ _serializationDomain = readerInternal . Settings ? . SerializationDomain ;
48+ }
49+
50+ _serializationDomain ??= BsonSerializer . DefaultSerializationDomain ;
4951
5052 _dynamicArraySerializer ??= _serializationDomain . BsonDefaults . DynamicArraySerializer ;
5153 _dynamicDocumentSerializer ??= _serializationDomain . BsonDefaults . DynamicDocumentSerializer ;
@@ -101,34 +103,20 @@ public IBsonReader Reader
101103 get { return _reader ; }
102104 }
103105
104- // //DOMAIN-API We should remove this version of the CreateRoot method, and use the one that takes a serialization domain.
105- // // public static methods
106- // /// <summary>
107- // /// Creates a root context.
108- // /// </summary>
109- // /// <param name="reader">The reader.</param>
110- // /// <param name="configurator">The configurator.</param>
111- // /// <returns>
112- // /// A root context.
113- // /// </returns>
114- // public static BsonDeserializationContext CreateRoot(
115- // IBsonReader reader,
116- // Action<Builder> configurator = null)
117- // {
118- // var builder = new Builder(null, reader, BsonSerializer.DefaultSerializationDomain);
119- // if (configurator != null)
120- // {
121- // configurator(builder);
122- // }
123- // return builder.Build();
124- // }
125-
126- internal static BsonDeserializationContext CreateRoot (
106+ // public static methods
107+ /// <summary>
108+ /// Creates a root context.
109+ /// </summary>
110+ /// <param name="reader">The reader.</param>
111+ /// <param name="configurator">The configurator.</param>
112+ /// <returns>
113+ /// A root context.
114+ /// </returns>
115+ public static BsonDeserializationContext CreateRoot (
127116 IBsonReader reader ,
128- IBsonSerializationDomain serializationDomain ,
129117 Action < Builder > configurator = null )
130118 {
131- var builder = new Builder ( null , reader , serializationDomain ) ;
119+ var builder = new Builder ( null , reader ) ;
132120 if ( configurator != null )
133121 {
134122 configurator ( builder ) ;
@@ -147,7 +135,7 @@ internal static BsonDeserializationContext CreateRoot(
147135 public BsonDeserializationContext With (
148136 Action < Builder > configurator = null )
149137 {
150- var builder = new Builder ( this , _reader , _serializationDomain ) ;
138+ var builder = new Builder ( this , _reader ) ;
151139 if ( configurator != null )
152140 {
153141 configurator ( builder ) ;
@@ -166,18 +154,16 @@ public class Builder
166154 private IBsonSerializer _dynamicArraySerializer ;
167155 private IBsonSerializer _dynamicDocumentSerializer ;
168156 private IBsonReader _reader ;
169- internal IBsonSerializationDomain _serializationDomain ;
170157
171158 // constructors
172- internal Builder ( BsonDeserializationContext other , IBsonReader reader , IBsonSerializationDomain serializationDomain )
159+ internal Builder ( BsonDeserializationContext other , IBsonReader reader )
173160 {
174161 if ( reader == null )
175162 {
176163 throw new ArgumentNullException ( "reader" ) ;
177164 }
178165
179166 _reader = reader ;
180- _serializationDomain = serializationDomain ;
181167 if ( other != null )
182168 {
183169 _allowDuplicateElementNames = other . AllowDuplicateElementNames ;
@@ -238,16 +224,14 @@ public IBsonReader Reader
238224 get { return _reader ; }
239225 }
240226
241- internal IBsonSerializationDomain SerializationDomain => _serializationDomain ;
242-
243227 // public methods
244228 /// <summary>
245229 /// Builds the BsonDeserializationContext instance.
246230 /// </summary>
247231 /// <returns>A BsonDeserializationContext.</returns>
248232 internal BsonDeserializationContext Build ( )
249233 {
250- return new BsonDeserializationContext ( _reader , _serializationDomain , _allowDuplicateElementNames , _dynamicArraySerializer , _dynamicDocumentSerializer ) ;
234+ return new BsonDeserializationContext ( _reader , _allowDuplicateElementNames , _dynamicArraySerializer , _dynamicDocumentSerializer ) ;
251235 }
252236 }
253237 }
0 commit comments