Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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": {
        "requi": [
            "Потрібне поле вимог."
        ],
        "$.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