diff --git a/src/Elastic.Transport/Components/Serialization/TransportSerializerExtensions.cs b/src/Elastic.Transport/Components/Serialization/TransportSerializerExtensions.cs index f72c9d6..79e189d 100644 --- a/src/Elastic.Transport/Components/Serialization/TransportSerializerExtensions.cs +++ b/src/Elastic.Transport/Components/Serialization/TransportSerializerExtensions.cs @@ -5,6 +5,7 @@ using System.IO; using System.Text.Json; using System; +using System.Diagnostics.CodeAnalysis; using System.Text; using System.Text.Json.Nodes; @@ -631,4 +632,26 @@ public static void Serialize( return serializer.Deserialize(type, ms); } + + /// + /// Extension method that tries to obtain the for based + /// implementations. + /// + /// + /// Receives the . + /// + public static bool TryGetJsonSerializerOptions( + this Serializer serializer, + [NotNullWhen(true)] out JsonSerializerOptions? options, + SerializationFormatting formatting = SerializationFormatting.None) + { + if (serializer is SystemTextJsonSerializer stjSerializer) + { + options = stjSerializer.GetJsonSerializerOptions(formatting); + return true; + } + + options = null; + return false; + } }