Skip to content

Commit abe53d7

Browse files
committed
revert back to injecting singular IJsonTypeResolver
1 parent 3bbd96b commit abe53d7

File tree

2 files changed

+7
-15
lines changed

2 files changed

+7
-15
lines changed

src/Elastic.Clients.Elasticsearch/_Shared/Serialization/DefaultSourceSerializer.cs

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
using System.Text.Json.Serialization.Metadata;
1111

1212
using Elastic.Transport;
13-
using Elastic.Transport.Products.Elasticsearch;
1413

1514
namespace Elastic.Clients.Elasticsearch.Serialization;
1615

@@ -38,12 +37,7 @@ public DefaultSourceSerializer(IElasticsearchClientSettings settings, Action<Jso
3837
/// <param name="typeInfoResolver">A custom <see cref="IJsonTypeInfoResolver"/> to use.</param>
3938
/// <param name="configureOptions">An optional <see cref="Action{T}"/> to customize the default <see cref="JsonSerializerOptions"/>.</param>
4039
public DefaultSourceSerializer(IElasticsearchClientSettings settings, IJsonTypeInfoResolver typeInfoResolver, Action<JsonSerializerOptions>? configureOptions = null) :
41-
base(new DefaultSourceSerializerOptionsProvider(settings, [typeInfoResolver], configureOptions))
42-
{
43-
}
44-
45-
public DefaultSourceSerializer(IElasticsearchClientSettings settings, IJsonTypeInfoResolver[] typeInfoResolvers, Action<JsonSerializerOptions>? configureOptions = null) :
46-
base(new DefaultSourceSerializerOptionsProvider(settings, typeInfoResolvers, configureOptions))
40+
base(new DefaultSourceSerializerOptionsProvider(settings, typeInfoResolver, configureOptions))
4741
{
4842
}
4943
}
@@ -74,11 +68,11 @@ public DefaultSourceSerializerOptionsProvider(IElasticsearchClientSettings setti
7468
/// <param name="settings">The <see cref="IElasticsearchClientSettings"/> instance to which this serializer options will be linked.</param>
7569
/// <param name="typeInfoResolver">A custom <see cref="IJsonTypeInfoResolver"/> to use.</param>
7670
/// <param name="configureOptions">An optional <see cref="Action{T}"/> to customize the default <see cref="JsonSerializerOptions"/>.</param>
77-
public DefaultSourceSerializerOptionsProvider(IElasticsearchClientSettings settings, IJsonTypeInfoResolver[] typeInfoResolvers, Action<JsonSerializerOptions>? configureOptions = null) :
71+
public DefaultSourceSerializerOptionsProvider(IElasticsearchClientSettings settings, IJsonTypeInfoResolver typeInfoResolver, Action<JsonSerializerOptions>? configureOptions = null) :
7872
base(
7973
CreateDefaultBuiltInConverters(settings),
8074
null,
81-
options => MutateOptions(options, typeInfoResolvers, configureOptions)
75+
options => MutateOptions(options, typeInfoResolver ?? throw new ArgumentNullException(nameof(typeInfoResolver)), configureOptions)
8276
)
8377
{
8478
}
@@ -100,13 +94,10 @@ private static IReadOnlyCollection<JsonConverter> CreateDefaultBuiltInConverters
10094

10195
[UnconditionalSuppressMessage("AOT", "IL3050:Calling members annotated with 'RequiresDynamicCodeAttribute'", Justification = "Always using explicit TypeInfoResolver")]
10296
[UnconditionalSuppressMessage("Trimming", "IL2026:Members annotated with 'RequiresUnreferencedCodeAttribute'", Justification = "Always using explicit TypeInfoResolver")]
103-
private static void MutateOptions(JsonSerializerOptions options, IJsonTypeInfoResolver[]? typeInfoResolvers, Action<JsonSerializerOptions>? configureOptions)
97+
private static void MutateOptions(JsonSerializerOptions options, IJsonTypeInfoResolver? typeInfoResolver, Action<JsonSerializerOptions>? configureOptions)
10498
{
105-
var resolvers = typeInfoResolvers ?? [];
99+
options.TypeInfoResolver = typeInfoResolver ?? new DefaultJsonTypeInfoResolver();
106100

107-
options.TypeInfoResolver = JsonTypeInfoResolver.Combine(
108-
[new DefaultJsonTypeInfoResolver(), .. resolvers]
109-
);
110101
options.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull;
111102
options.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
112103

src/Playground/Program.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// See the LICENSE file in the project root for more information.
44

55
using System.Diagnostics.CodeAnalysis;
6+
using System.Text.Json.Serialization.Metadata;
67
using Elastic.Clients.Elasticsearch;
78
using Elastic.Clients.Elasticsearch.Serialization;
89
using Elastic.Transport;
@@ -12,7 +13,7 @@
1213
var pool = new SingleNodePool(new Uri("https://primary.es.europe-west3.gcp.cloud.es.io"));
1314
var settings = new ElasticsearchClientSettings(pool,
1415
sourceSerializer: (_, settings) =>
15-
new DefaultSourceSerializer(settings, [PlaygroundJsonSerializerContext.Default])
16+
new DefaultSourceSerializer(settings, PlaygroundJsonSerializerContext.Default)
1617
)
1718
.Authentication(new BasicAuthentication("elastic", "Oov35Wtxj5DzpZNzYAzFb0KZ"))
1819
.DisableDirectStreaming()

0 commit comments

Comments
 (0)