mirror of
https://github.com/Tribufu/TribufuDotNet
synced 2026-08-08 20:31:06 +00:00
35 lines
1.2 KiB
C#
35 lines
1.2 KiB
C#
// Copyright (c) Tribufu. All Rights Reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Converters;
|
|
using Newtonsoft.Json.Serialization;
|
|
|
|
namespace Tribufu.Serialization
|
|
{
|
|
public static class CustomSerializerSettings
|
|
{
|
|
public static JsonSerializerSettings GetNewtonsoftJson()
|
|
{
|
|
var settings = new JsonSerializerSettings();
|
|
SetNewtonsoftJson(settings);
|
|
return settings;
|
|
}
|
|
|
|
public static void SetNewtonsoftJson(JsonSerializerSettings settings)
|
|
{
|
|
settings.ContractResolver = new BaseClassFirstContractResolver
|
|
{
|
|
NamingStrategy = new SnakeCaseNamingStrategy()
|
|
};
|
|
|
|
settings.Converters.Add(new DecimalNullableStringConverter());
|
|
settings.Converters.Add(new DecimalStringConverter());
|
|
settings.Converters.Add(new ULongNullableStringConverter());
|
|
settings.Converters.Add(new ULongStringConverter());
|
|
settings.Converters.Add(new StringEnumConverter(new SnakeCaseNamingStrategy(), false));
|
|
|
|
settings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
|
|
}
|
|
}
|
|
}
|