Skip to content

Commit 83607a5

Browse files
committed
Big refactoring (need to fix it)
1 parent 9b14687 commit 83607a5

File tree

108 files changed

+1322
-388
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

108 files changed

+1322
-388
lines changed

src/MongoDB.Bson/BsonExtensionMethods.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ internal static byte[] ToBson(
124124
{
125125
using (var bsonWriter = new BsonBinaryWriter(memoryStream, writerSettings ?? BsonBinaryWriterSettings.Defaults))
126126
{
127-
var context = BsonSerializationContext.CreateRoot(bsonWriter, configurator);
127+
var context = BsonSerializationContext.CreateRoot(bsonWriter, serializationDomain, configurator);
128128
serializer.Serialize(context, args, obj);
129129
}
130130
return memoryStream.ToArray();
@@ -214,7 +214,7 @@ internal static BsonDocument ToBsonDocument(
214214
var document = new BsonDocument();
215215
using (var bsonWriter = new BsonDocumentWriter(document))
216216
{
217-
var context = BsonSerializationContext.CreateRoot(bsonWriter, configurator);
217+
var context = BsonSerializationContext.CreateRoot(bsonWriter, serializationDomain, configurator);
218218
serializer.Serialize(context, args, obj);
219219
}
220220
return document;
@@ -295,7 +295,7 @@ internal static string ToJson(
295295
{
296296
using (var bsonWriter = new JsonWriter(stringWriter, writerSettings ?? JsonWriterSettings.Defaults))
297297
{
298-
var context = BsonSerializationContext.CreateRoot(bsonWriter, configurator);
298+
var context = BsonSerializationContext.CreateRoot(bsonWriter, domain, configurator);
299299
serializer.Serialize(context, args, obj);
300300
}
301301
return stringWriter.ToString();

src/MongoDB.Bson/IO/BsonBinaryWriterSettings.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,6 @@ protected override BsonWriterSettings CloneImplementation()
123123
FixOldBinarySubTypeOnOutput = _fixOldBinarySubTypeOnOutput,
124124
MaxDocumentSize = _maxDocumentSize,
125125
MaxSerializationDepth = MaxSerializationDepth,
126-
SerializationDomain = SerializationDomain,
127126
};
128127
return clone;
129128
}

src/MongoDB.Bson/IO/BsonReader.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -321,13 +321,15 @@ public virtual IByteBuffer ReadRawBsonArray()
321321
// overridden in BsonBinaryReader to read the raw bytes from the stream
322322
// for all other streams, deserialize the array and reserialize it using a BsonBinaryWriter to get the raw bytes
323323

324-
var deserializationContext = BsonDeserializationContext.CreateRoot(this);
324+
//QUESTION Is it correct we only need a default domain here?
325+
var deserializationContext = BsonDeserializationContext.CreateRoot(this, BsonSerializer.DefaultSerializationDomain);
325326
var array = BsonArraySerializer.Instance.Deserialize(deserializationContext);
326327

327328
using (var memoryStream = new MemoryStream())
328329
using (var bsonWriter = new BsonBinaryWriter(memoryStream, BsonBinaryWriterSettings.Defaults))
329330
{
330-
var serializationContext = BsonSerializationContext.CreateRoot(bsonWriter);
331+
//QUESTION Is it correct we only need a default domain here?
332+
var serializationContext = BsonSerializationContext.CreateRoot(bsonWriter, BsonSerializer.DefaultSerializationDomain);
331333
bsonWriter.WriteStartDocument();
332334
var startPosition = memoryStream.Position + 3; // just past BsonType, "x" and null byte
333335
bsonWriter.WriteName("x");
@@ -351,7 +353,8 @@ public virtual IByteBuffer ReadRawBsonDocument()
351353
// overridden in BsonBinaryReader to read the raw bytes from the stream
352354
// for all other streams, deserialize the document and use ToBson to get the raw bytes
353355

354-
var deserializationContext = BsonDeserializationContext.CreateRoot(this);
356+
//QUESTION Is it correct we only need a default domain here?
357+
var deserializationContext = BsonDeserializationContext.CreateRoot(this, BsonSerializer.DefaultSerializationDomain);
355358
var document = BsonDocumentSerializer.Instance.Deserialize(deserializationContext);
356359
var bytes = document.ToBson();
357360
return new ByteArrayBuffer(bytes, isReadOnly: true);

src/MongoDB.Bson/IO/BsonWriter.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -326,13 +326,15 @@ public virtual void WriteRawBsonArray(IByteBuffer slice)
326326
stream.Position = 0;
327327
using (var reader = new BsonBinaryReader(stream, BsonBinaryReaderSettings.Defaults))
328328
{
329-
var deserializationContext = BsonDeserializationContext.CreateRoot(reader);
329+
//QUESTION Is it correct we only need a default domain here?
330+
var deserializationContext = BsonDeserializationContext.CreateRoot(reader, BsonSerializer.DefaultSerializationDomain);
330331
reader.ReadStartDocument();
331332
reader.ReadName("x");
332333
var array = BsonArraySerializer.Instance.Deserialize(deserializationContext);
333334
reader.ReadEndDocument();
334335

335-
var serializationContext = BsonSerializationContext.CreateRoot(this);
336+
//QUESTION Is it correct we only need a default domain here?
337+
var serializationContext = BsonSerializationContext.CreateRoot(this, BsonSerializer.DefaultSerializationDomain);
336338
BsonArraySerializer.Instance.Serialize(serializationContext, array);
337339
}
338340
}
@@ -350,10 +352,12 @@ public virtual void WriteRawBsonDocument(IByteBuffer slice)
350352
using (var stream = new ByteBufferStream(slice, ownsBuffer: false))
351353
using (var bsonReader = new BsonBinaryReader(stream, BsonBinaryReaderSettings.Defaults))
352354
{
353-
var deserializationContext = BsonDeserializationContext.CreateRoot(bsonReader);
355+
//QUESTION Is it correct we only need a default domain here?
356+
var deserializationContext = BsonDeserializationContext.CreateRoot(bsonReader, BsonSerializer.DefaultSerializationDomain);
354357
var document = BsonDocumentSerializer.Instance.Deserialize(deserializationContext);
355358

356-
var serializationContext = BsonSerializationContext.CreateRoot(this);
359+
//QUESTION Is it correct we only need a default domain here?
360+
var serializationContext = BsonSerializationContext.CreateRoot(this, BsonSerializer.DefaultSerializationDomain);
357361
BsonDocumentSerializer.Instance.Serialize(serializationContext, document);
358362
}
359363
}

src/MongoDB.Bson/IO/BsonWriterSettings.cs

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ public abstract class BsonWriterSettings
2626
// private fields
2727
private bool _isFrozen;
2828
private int _maxSerializationDepth = BsonDefaults.MaxSerializationDepth;
29-
private IBsonSerializationDomain _serializationDomain = BsonSerializer.DefaultSerializationDomain;
3029

3130
// constructors
3231
/// <summary>
@@ -94,19 +93,6 @@ public BsonWriterSettings FrozenCopy()
9493
}
9594
}
9695

97-
/// <summary>
98-
/// //TODO
99-
/// </summary>
100-
internal IBsonSerializationDomain SerializationDomain
101-
{
102-
get => _serializationDomain;
103-
set
104-
{
105-
if (_isFrozen) { ThrowFrozenException(); }
106-
_serializationDomain = value;
107-
}
108-
}
109-
11096
// protected methods
11197
/// <summary>
11298
/// Creates a clone of the settings.

src/MongoDB.Bson/IO/ElementAppendingBsonWriter.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@ public override void WriteEndDocument()
6060
Wrapped.PushSettings(_settingsConfigurator);
6161
try
6262
{
63-
var context = BsonSerializationContext.CreateRoot(Wrapped);
63+
//QUESTION Is it correct we only need a default domain here?
64+
var context = BsonSerializationContext.CreateRoot(Wrapped, BsonSerializer.DefaultSerializationDomain);
6465
foreach (var element in _elements)
6566
{
6667
Wrapped.WriteName(element.Name);

src/MongoDB.Bson/ObjectModel/BsonDocument.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,8 @@ public static BsonDocument Parse(string json)
331331
{
332332
using (var jsonReader = new JsonReader(json))
333333
{
334-
var context = BsonDeserializationContext.CreateRoot(jsonReader);
334+
//QUESTION Is it correct we only need a default domain here?
335+
var context = BsonDeserializationContext.CreateRoot(jsonReader, BsonSerializer.DefaultSerializationDomain);
335336
var document = BsonDocumentSerializer.Instance.Deserialize(context);
336337
if (!jsonReader.IsAtEndOfFile())
337338
{

src/MongoDB.Bson/ObjectModel/BsonDocumentWrapper.cs

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -94,16 +94,9 @@ public object Wrapped
9494
public static BsonDocumentWrapper Create<TNominalType>(TNominalType value) =>
9595
Create(value, BsonSerializer.DefaultSerializationDomain);
9696

97-
/// <summary>
98-
/// //TODO
99-
/// </summary>
100-
/// <param name="value"></param>
101-
/// <param name="domain"></param>
102-
/// <typeparam name="TNominalType"></typeparam>
103-
/// <returns></returns>
104-
internal static BsonDocumentWrapper Create<TNominalType>(TNominalType value, IBsonSerializationDomain domain)
97+
internal static BsonDocumentWrapper Create<TNominalType>(TNominalType value, IBsonSerializationDomain serializationDomain)
10598
{
106-
return Create(typeof(TNominalType), value, domain);
99+
return Create(typeof(TNominalType), value, serializationDomain);
107100
}
108101

109102
/// <summary>
@@ -115,13 +108,6 @@ internal static BsonDocumentWrapper Create<TNominalType>(TNominalType value, IBs
115108
public static BsonDocumentWrapper Create(Type nominalType, object value) =>
116109
Create(nominalType, value, BsonSerializer.DefaultSerializationDomain);
117110

118-
/// <summary>
119-
/// //TODO
120-
/// </summary>
121-
/// <param name="nominalType"></param>
122-
/// <param name="value"></param>
123-
/// <param name="domain"></param>
124-
/// <returns></returns>
125111
internal static BsonDocumentWrapper Create(Type nominalType, object value, IBsonSerializationDomain domain)
126112
{
127113
var serializer = domain.LookupSerializer(nominalType);
@@ -220,7 +206,8 @@ protected override IEnumerable<BsonElement> Materialize()
220206
var writerSettings = BsonDocumentWriterSettings.Defaults;
221207
using (var bsonWriter = new BsonDocumentWriter(bsonDocument, writerSettings))
222208
{
223-
var context = BsonSerializationContext.CreateRoot(bsonWriter);
209+
//QUESTION Is it correct we only need a default domain here?
210+
var context = BsonSerializationContext.CreateRoot(bsonWriter, BsonSerializer.DefaultSerializationDomain);
224211
_serializer.Serialize(context, _wrapped);
225212
}
226213

src/MongoDB.Bson/ObjectModel/LazyBsonArray.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,8 @@ private IEnumerable<BsonValue> MaterializeThisLevel()
173173
using (var stream = new ByteBufferStream(_slice, ownsBuffer: false))
174174
using (var bsonReader = new BsonBinaryReader(stream, _readerSettings))
175175
{
176-
var context = BsonDeserializationContext.CreateRoot(bsonReader);
176+
//QUESTION Is it correct we only need a default domain here?
177+
var context = BsonDeserializationContext.CreateRoot(bsonReader, BsonSerializer.DefaultSerializationDomain);
177178

178179
bsonReader.ReadStartDocument();
179180
BsonType bsonType;

src/MongoDB.Bson/ObjectModel/LazyBsonDocument.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,8 @@ private IEnumerable<BsonElement> MaterializeThisLevel()
184184
using (var stream = new ByteBufferStream(_slice, ownsBuffer: false))
185185
using (var bsonReader = new BsonBinaryReader(stream, _readerSettings))
186186
{
187-
var context = BsonDeserializationContext.CreateRoot(bsonReader);
187+
//QUESTION Is it correct we only need a default domain here?
188+
var context = BsonDeserializationContext.CreateRoot(bsonReader, BsonSerializer.DefaultSerializationDomain);
188189

189190
bsonReader.ReadStartDocument();
190191
BsonType bsonType;

0 commit comments

Comments
 (0)