Skip to content

Commit 525b781

Browse files
committed
Fixes for serialization after refactoring
1 parent dc8a4f8 commit 525b781

File tree

4 files changed

+14
-2
lines changed

4 files changed

+14
-2
lines changed

src/Elastic.Clients.Elasticsearch/Core/Infer/IndexName/IndexName.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@
44

55
using System;
66
using System.Diagnostics;
7+
using System.Text.Json.Serialization;
78
using Elastic.Transport;
89

910
namespace Elastic.Clients.Elasticsearch;
1011

1112
/// <summary>
1213
/// Represents the name of an index, which may be inferred from a <see cref="Type"/>.
1314
/// </summary>
15+
[JsonConverter(typeof(IndexNameConverter))]
1416
[DebuggerDisplay("{DebugDisplay,nq}")]
1517
public class IndexName : IEquatable<IndexName>, IUrlParameter
1618
{
@@ -48,7 +50,7 @@ private IndexName(string index, Type type, string cluster = null)
4850
string IUrlParameter.GetString(ITransportConfiguration settings)
4951
{
5052
if (settings is not IElasticsearchClientSettings elasticsearchClientSettings)
51-
throw new Exception("Tried to pass index name on querystring but it could not be resolved because no Elastic.Clients.Elasticsearch settings are available.");
53+
throw new Exception("Tried to pass index name on query string but it could not be resolved because no Elastic.Clients.Elasticsearch settings are available.");
5254

5355
return elasticsearchClientSettings.Inferrer.IndexName(this);
5456
}

src/Elastic.Clients.Elasticsearch/Core/Infer/IndexName/IndexNameConverter.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ namespace Elastic.Clients.Elasticsearch;
1313
/// <summary>
1414
/// Converts an <see cref="IndexName"/> to and from its JSON representation.
1515
/// </summary>
16-
internal class IndexNameConverter : JsonConverter<IndexName?>
16+
internal class IndexNameConverter : JsonConverter<IndexName>
1717
{
1818
private IElasticsearchClientSettings _settings;
1919

src/Elastic.Clients.Elasticsearch/Core/Infer/JoinFieldRouting/RoutingConverter.cs

+2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ public override void Write(Utf8JsonWriter writer, Routing value, JsonSerializerO
2828

2929
if (value.Document is not null)
3030
{
31+
InitializeSettings(options);
32+
3133
var documentId = _settings.Inferrer.Routing(value.Document.GetType(), value.Document);
3234

3335
if (documentId is null)

src/Elastic.Clients.Elasticsearch/Serialization/DefaultRequestResponseSerializer.cs

+8
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public DefaultRequestResponseSerializer(IElasticsearchClientSettings settings)
3333
new SelfSerializableConverterFactory(settings),
3434
new SelfDeserializableConverterFactory(settings),
3535
new SelfTwoWaySerializableConverterFactory(settings),
36+
new FieldValuesConverter(), // explicitly registered before IsADictionaryConverterFactory as we want this specialised converter to match
3637
new IsADictionaryConverterFactory(),
3738
new ResponseItemConverterFactory(),
3839
new DictionaryResponseConverterFactory(settings),
@@ -44,6 +45,13 @@ public DefaultRequestResponseSerializer(IElasticsearchClientSettings settings)
4445

4546
ElasticsearchClient.SettingsTable.Add(Options, settings);
4647

48+
IndentedOptions = new JsonSerializerOptions(Options)
49+
{
50+
WriteIndented = true
51+
};
52+
53+
ElasticsearchClient.SettingsTable.Add(IndentedOptions, settings);
54+
4755
_settings = settings;
4856
}
4957

0 commit comments

Comments
 (0)