Skip to content

Commit f56f1a5

Browse files
committed
Only call CreateJsonSerializerOptions once
1 parent e53e509 commit f56f1a5

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

src/Elastic.Transport/Components/Serialization/IJsonSerializerOptionsProvider.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@ public interface IJsonSerializerOptionsProvider
1717
/// <inheritdoc cref="IJsonSerializerOptionsProvider"/>
1818
JsonSerializerOptions CreateJsonSerializerOptions();
1919
}
20+
2021
/// <summary>
2122
/// Default implementation of <see cref="IJsonSerializerOptionsProvider"/> specialized in providing more converters and
22-
/// altering the shared <see cref="JsonSerializerOptions"/> used by <see cref="SystemTextJsonSerializer"/> and its derrived classes
23+
/// altering the shared <see cref="JsonSerializerOptions"/> used by <see cref="SystemTextJsonSerializer"/> and its derived classes
2324
/// </summary>
2425
public class TransportSerializerOptionsProvider : IJsonSerializerOptionsProvider
2526
{
@@ -31,6 +32,7 @@ public class TransportSerializerOptionsProvider : IJsonSerializerOptionsProvider
3132
public JsonSerializerOptions? CreateJsonSerializerOptions()
3233
{
3334
var options = new JsonSerializerOptions();
35+
3436
foreach (var converter in _bakedInConverters ?? [])
3537
options.Converters.Add(converter);
3638

@@ -57,4 +59,3 @@ public TransportSerializerOptionsProvider(
5759
_mutateOptions = mutateOptions;
5860
}
5961
}
60-

src/Elastic.Transport/Components/Serialization/SystemTextJsonSerializer.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,12 @@ public abstract class SystemTextJsonSerializer : Serializer
2727
/// </summary>
2828
protected SystemTextJsonSerializer(IJsonSerializerOptionsProvider? provider = null)
2929
{
30-
3130
provider ??= new TransportSerializerOptionsProvider();
3231
_options = provider.CreateJsonSerializerOptions();
33-
_indentedOptions = provider.CreateJsonSerializerOptions();
34-
_indentedOptions.WriteIndented = true;
32+
_indentedOptions = new JsonSerializerOptions(_options)
33+
{
34+
WriteIndented = true
35+
};
3536
}
3637

3738
#region Serializer
@@ -93,7 +94,6 @@ public override Task SerializeAsync<T>(T data, Stream stream,
9394
protected internal JsonSerializerOptions? GetJsonSerializerOptions(SerializationFormatting formatting = SerializationFormatting.None) =>
9495
formatting is SerializationFormatting.None ? _options : _indentedOptions;
9596

96-
9797
private static bool TryReturnDefault<T>(Stream? stream, out T deserialize)
9898
{
9999
deserialize = default;

0 commit comments

Comments
 (0)