diff --git a/ArchiSteamFarm/IPC/Startup.cs b/ArchiSteamFarm/IPC/Startup.cs index 7eefbf194..fe2b220b5 100644 --- a/ArchiSteamFarm/IPC/Startup.cs +++ b/ArchiSteamFarm/IPC/Startup.cs @@ -354,14 +354,7 @@ namespace ArchiSteamFarm.IPC { mvc.AddApiExplorer(); #endif -#if NETFRAMEWORK - // Add JSON formatters that will be used as default ones if no specific formatters are asked for - mvc.AddJsonFormatters(); - - mvc.AddJsonOptions( -#else mvc.AddNewtonsoftJson( -#endif static options => { // Fix default contract resolver to use original names and not a camel case options.SerializerSettings.ContractResolver = new DefaultContractResolver(); diff --git a/ArchiSteamFarm/IPC/WebUtilities.cs b/ArchiSteamFarm/IPC/WebUtilities.cs index c33af3c83..7d2b35b1d 100644 --- a/ArchiSteamFarm/IPC/WebUtilities.cs +++ b/ArchiSteamFarm/IPC/WebUtilities.cs @@ -21,6 +21,7 @@ #if NETFRAMEWORK using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.DependencyInjection; #endif using System; @@ -42,6 +43,23 @@ namespace ArchiSteamFarm.IPC { return services.AddMvcCore(); } + internal static IMvcCoreBuilder AddNewtonsoftJson(this IMvcCoreBuilder mvc, Action setupAction) { + if (mvc == null) { + throw new ArgumentNullException(nameof(mvc)); + } + + if (setupAction == null) { + throw new ArgumentNullException(nameof(setupAction)); + } + + // Add JSON formatters that will be used as default ones if no specific formatters are asked for + mvc.AddJsonFormatters(); + + mvc.AddJsonOptions(setupAction); + + return mvc; + } + internal static IServiceCollection AddRequestLocalization(this IServiceCollection services, Action action) { if (services == null) { throw new ArgumentNullException(nameof(services));