Используйте общую политику для сериализации enums в виде струн с корпусом SnakeC#

Место общения программистов C#
Anonymous
Используйте общую политику для сериализации enums в виде струн с корпусом Snake

Сообщение Anonymous »

Я переношу некоторые библиотеки в .NET 8 и пытаюсь использовать новый JsonNamingPolicy.SnakeCaseLower для перечислений (у меня есть собственный преобразователь, который я сейчас использую, который использует отражение, но я хочу отказаться от него).
Я могу сериализовать перечисление в случай змеи, используя этот JsonSerializerOptions:

Код: Выделить всё

JsonSerializerOptions options = new()
{
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower,
};

options.Converters.Add(new JsonStringEnumConverter(namingPolicy: JsonNamingPolicy.SnakeCaseLower));
Проблема заключается в том, что в соответствии с документацией негенерический тип jsonstringenumConverter не поддерживается для AOT. Представленное решение заключается в использовании [jsonsourcegenerationoptions (usestringenumConverter = true)] в классе, наследуя от jsonserializercontext , но затем я теряю политику имен для enum. способ?

Подробнее здесь: https://stackoverflow.com/questions/775 ... snake-case

Вернуться в «C#»