diff --git a/src/Elastic.Transport/Components/Serialization/IJsonSerializerOptionsProvider.cs b/src/Elastic.Transport/Components/Serialization/IJsonSerializerOptionsProvider.cs index 1660828..10ec20e 100644 --- a/src/Elastic.Transport/Components/Serialization/IJsonSerializerOptionsProvider.cs +++ b/src/Elastic.Transport/Components/Serialization/IJsonSerializerOptionsProvider.cs @@ -17,9 +17,10 @@ public interface IJsonSerializerOptionsProvider /// JsonSerializerOptions CreateJsonSerializerOptions(); } + /// /// Default implementation of specialized in providing more converters and -/// altering the shared used by and its derrived classes +/// altering the shared used by and its derived classes /// public class TransportSerializerOptionsProvider : IJsonSerializerOptionsProvider { @@ -31,6 +32,7 @@ public class TransportSerializerOptionsProvider : IJsonSerializerOptionsProvider public JsonSerializerOptions? CreateJsonSerializerOptions() { var options = new JsonSerializerOptions(); + foreach (var converter in _bakedInConverters ?? []) options.Converters.Add(converter); @@ -57,4 +59,3 @@ public TransportSerializerOptionsProvider( _mutateOptions = mutateOptions; } } - diff --git a/src/Elastic.Transport/Components/Serialization/SystemTextJsonSerializer.cs b/src/Elastic.Transport/Components/Serialization/SystemTextJsonSerializer.cs index 6e9a5c0..0a713dd 100644 --- a/src/Elastic.Transport/Components/Serialization/SystemTextJsonSerializer.cs +++ b/src/Elastic.Transport/Components/Serialization/SystemTextJsonSerializer.cs @@ -27,11 +27,12 @@ public abstract class SystemTextJsonSerializer : Serializer /// protected SystemTextJsonSerializer(IJsonSerializerOptionsProvider? provider = null) { - provider ??= new TransportSerializerOptionsProvider(); _options = provider.CreateJsonSerializerOptions(); - _indentedOptions = provider.CreateJsonSerializerOptions(); - _indentedOptions.WriteIndented = true; + _indentedOptions = new JsonSerializerOptions(_options) + { + WriteIndented = true + }; } #region Serializer @@ -93,7 +94,6 @@ public override Task SerializeAsync(T data, Stream stream, protected internal JsonSerializerOptions? GetJsonSerializerOptions(SerializationFormatting formatting = SerializationFormatting.None) => formatting is SerializationFormatting.None ? _options : _indentedOptions; - private static bool TryReturnDefault(Stream? stream, out T deserialize) { deserialize = default;