Я переношу некоторые библиотеки в .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