From 07212723d75ec1a9495526b7ed771ca64cb07ac4 Mon Sep 17 00:00:00 2001 From: Florian Bernd Date: Wed, 16 Oct 2024 12:37:27 +0200 Subject: [PATCH] Add `TryGetJsonSerializerOptions` extension method --- .../TransportSerializerExtensions.cs | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) 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; + } }