Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 3045|Ответ: 0

[Источник] .NET/C# использует Refit для запроса ошибки типа enum параметра enum

[Скопировать ссылку]
Опубликовано 23.07.2023 15:13:05 | | | |
Требования: Если в параметре есть тип enum, интерфейс выдаст ошибку «400 Bad Request», потому что Refit по умолчанию преобразует enum в строку, и интерфейс не может преобразовать строку в ошибку enum, следующим образом:

{
    "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
    "title": "Произошла одна или несколько ошибок валидации.",
    «статус»: 400,
    "traceId": "00-3aef79a91ce9c411883953c9aaccb48a-68917b547ba8a2e5-00",
    "errors": {
        "requ": [
            «Требуется поле требований.»
        ],
        "$.languagePermissions": [
            «Значение JSON не могло быть преобразовано в LanguagePermissionsEnum. Путь: $.languagePermissions | Номер строки: 0 | BytePositionInLine: 145.»
        ]
    }
}



Официальное объяснение такова: причина преобразования enums в строки по умолчанию заключается в том, чтоПовысить читаемость и облегчить чтение информации о содержании параметров。 Ссылка:Вход по гиперссылке виден.

По умолчанию сериализация enum в строку, которую можно изменить, предоставив сериализатору свои собственные настройки:Вход по гиперссылке виден.



Итак, мы передаём пользовательские настройки Refit и не используем стандартные настройки, удаляемJsonStringEnumConverterПреобразователь работает нормально, код такой:

Решение:Вход по гиперссылке виден.
(Конец)




Предыдущий:.NET/C# — лёгкий фреймворк для отображения объектов Mapster
Следующий:.NET/C# Простой туториал по Polly
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com