diff --git a/src/PayPal.Sdk.Checkout/Core/MessageSerializers/JsonSerializerOptionsForJsonSerializerContext.cs b/src/PayPal.Sdk.Checkout/Core/MessageSerializers/JsonSerializerOptionsForJsonSerializerContext.cs new file mode 100644 index 0000000..18f0db4 --- /dev/null +++ b/src/PayPal.Sdk.Checkout/Core/MessageSerializers/JsonSerializerOptionsForJsonSerializerContext.cs @@ -0,0 +1,22 @@ +using PayPal.Sdk.Checkout.Core.Converters; +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace PayPal.Sdk.Checkout.Core.MessageSerializers; + +public static class JsonSerializerOptionsForJsonSerializerContext +{ + public static JsonSerializerOptions ConvertersContextOptions { get; } = new() + { + DefaultIgnoreCondition = JsonIgnoreCondition.Never, + IgnoreReadOnlyFields = false, + IgnoreReadOnlyProperties = false, + IncludeFields = false, + WriteIndented = true, + PropertyNamingPolicy = JsonNamingPolicy.CamelCase, + Converters = + { + new JsonStringEnumConverterFactory(), + }, + }; +} diff --git a/src/PayPal.Sdk.Checkout/Core/MessageSerializers/PayPalAuthenticationJsonSerializerContext.cs b/src/PayPal.Sdk.Checkout/Core/MessageSerializers/PayPalAuthenticationJsonSerializerContext.cs index 35eba4a..b2613ee 100644 --- a/src/PayPal.Sdk.Checkout/Core/MessageSerializers/PayPalAuthenticationJsonSerializerContext.cs +++ b/src/PayPal.Sdk.Checkout/Core/MessageSerializers/PayPalAuthenticationJsonSerializerContext.cs @@ -8,26 +8,12 @@ namespace PayPal.Sdk.Checkout.Core.MessageSerializers; [JsonSourceGenerationOptions( WriteIndented = true, PropertyNamingPolicy = JsonKnownNamingPolicy.CamelCase, - GenerationMode = JsonSourceGenerationMode.Serialization + GenerationMode = JsonSourceGenerationMode.Metadata )] [JsonSerializable(typeof(AccessToken))] [JsonSerializable(typeof(RefreshToken))] internal partial class PayPalAuthenticationJsonSerializerContext : JsonSerializerContext { - private static JsonSerializerOptions ConvertersContextOptions { get; } = new() - { - DefaultIgnoreCondition = JsonIgnoreCondition.Never, - IgnoreReadOnlyFields = false, - IgnoreReadOnlyProperties = false, - IncludeFields = false, - WriteIndented = true, - PropertyNamingPolicy = JsonNamingPolicy.CamelCase, - Converters = - { - new JsonStringEnumConverterFactory(), - }, - }; - private static PayPalAuthenticationJsonSerializerContext? _convertersContext; /// @@ -35,6 +21,6 @@ internal partial class PayPalAuthenticationJsonSerializerContext : JsonSerialize /// public static PayPalAuthenticationJsonSerializerContext CustomConverters => _convertersContext ??= new PayPalAuthenticationJsonSerializerContext( - new JsonSerializerOptions(ConvertersContextOptions) + new JsonSerializerOptions(JsonSerializerOptionsForJsonSerializerContext.ConvertersContextOptions) ); } diff --git a/src/PayPal.Sdk.Checkout/Core/MessageSerializers/PayPalOrderJsonSerializerContext.cs b/src/PayPal.Sdk.Checkout/Core/MessageSerializers/PayPalOrderJsonSerializerContext.cs index 761da22..da5b9c0 100644 --- a/src/PayPal.Sdk.Checkout/Core/MessageSerializers/PayPalOrderJsonSerializerContext.cs +++ b/src/PayPal.Sdk.Checkout/Core/MessageSerializers/PayPalOrderJsonSerializerContext.cs @@ -9,7 +9,7 @@ namespace PayPal.Sdk.Checkout.Core.MessageSerializers; [JsonSourceGenerationOptions( WriteIndented = true, PropertyNamingPolicy = JsonKnownNamingPolicy.CamelCase, - GenerationMode = JsonSourceGenerationMode.Serialization + GenerationMode = JsonSourceGenerationMode.Metadata )] [JsonSerializable(typeof(AuthorizeRequest))] [JsonSerializable(typeof(IReadOnlyCollection))] @@ -19,20 +19,6 @@ namespace PayPal.Sdk.Checkout.Core.MessageSerializers; [JsonSerializable(typeof(OrderRequest))] internal partial class PayPalOrderJsonSerializerContext : JsonSerializerContext { - private static JsonSerializerOptions ConvertersContextOptions { get; } = new() - { - DefaultIgnoreCondition = JsonIgnoreCondition.Never, - IgnoreReadOnlyFields = false, - IgnoreReadOnlyProperties = false, - IncludeFields = false, - WriteIndented = true, - PropertyNamingPolicy = JsonNamingPolicy.CamelCase, - Converters = - { - new JsonStringEnumConverterFactory(), - }, - }; - private static PayPalOrderJsonSerializerContext? _convertersContext; /// @@ -40,6 +26,6 @@ internal partial class PayPalOrderJsonSerializerContext : JsonSerializerContext /// public static PayPalOrderJsonSerializerContext CustomConverters => _convertersContext ??= new PayPalOrderJsonSerializerContext( - new JsonSerializerOptions(ConvertersContextOptions) + new JsonSerializerOptions(JsonSerializerOptionsForJsonSerializerContext.ConvertersContextOptions) ); } diff --git a/src/PayPal.Sdk.Checkout/Core/MessageSerializers/PayPalPaymentsJsonSerializerContext.cs b/src/PayPal.Sdk.Checkout/Core/MessageSerializers/PayPalPaymentsJsonSerializerContext.cs index 9153915..0be2e69 100644 --- a/src/PayPal.Sdk.Checkout/Core/MessageSerializers/PayPalPaymentsJsonSerializerContext.cs +++ b/src/PayPal.Sdk.Checkout/Core/MessageSerializers/PayPalPaymentsJsonSerializerContext.cs @@ -1,4 +1,3 @@ -using PayPal.Sdk.Checkout.Core.Converters; using PayPal.Sdk.Checkout.Payments; using System.Text.Json; using System.Text.Json.Serialization; @@ -8,7 +7,7 @@ namespace PayPal.Sdk.Checkout.Core.MessageSerializers; [JsonSourceGenerationOptions( WriteIndented = true, PropertyNamingPolicy = JsonKnownNamingPolicy.CamelCase, - GenerationMode = JsonSourceGenerationMode.Serialization + GenerationMode = JsonSourceGenerationMode.Metadata )] [JsonSerializable(typeof(Authorization))] [JsonSerializable(typeof(Capture))] @@ -18,20 +17,6 @@ namespace PayPal.Sdk.Checkout.Core.MessageSerializers; [JsonSerializable(typeof(RefundRequest))] internal partial class PayPalPaymentsJsonSerializerContext : JsonSerializerContext { - private static JsonSerializerOptions ConvertersContextOptions { get; } = new() - { - DefaultIgnoreCondition = JsonIgnoreCondition.Never, - IgnoreReadOnlyFields = false, - IgnoreReadOnlyProperties = false, - IncludeFields = false, - WriteIndented = true, - PropertyNamingPolicy = JsonNamingPolicy.CamelCase, - Converters = - { - new JsonStringEnumConverterFactory(), - }, - }; - private static PayPalPaymentsJsonSerializerContext? _convertersContext; /// @@ -39,6 +24,6 @@ internal partial class PayPalPaymentsJsonSerializerContext : JsonSerializerConte /// public static PayPalPaymentsJsonSerializerContext CustomConverters => _convertersContext ??= new PayPalPaymentsJsonSerializerContext( - new JsonSerializerOptions(ConvertersContextOptions) + new JsonSerializerOptions(JsonSerializerOptionsForJsonSerializerContext.ConvertersContextOptions) ); }