Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 3045|Respuesta: 0

[Fuente] .NET/C# utiliza Refit para solicitar un error de tipo enum en parámetro

[Copiar enlace]
Publicado en 23/7/2023 15:13:05 | | | |
Requisitos: Si hay un tipo de enum en el parámetro, la interfaz devolverá un error "400 Bad Request", porque Refit convierte el enum del objeto en una cadena por defecto, y la interfaz no puede convertir la cadena en un error de enum, de la siguiente manera:

{
    "tipo": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
    "título": "Ocurrieron uno o más errores de validación."
    "estado": 400,
    "traceId": "00-3aef79a91ce9c411883953c9aaccb48a-68917b547ba8a2e5-00",
    "errores": {
        "requisición": [
            "El campo de requisitos es obligatorio."
        ],
        "$.PermisosIdioma": [
            "El valor JSON no pudo convertirse a LanguagePermissionsEnum. Ruta: $.idiomaPermisos | Número de línea: 0 | BytePositionInLine: 145."
        ]
    }
}



La explicación oficial es que la razón para convertir enums en cadenas por defecto es porqueAumentar la legibilidad y facilitar la lectura de la información del contenido de los parámetros。 Referencia:El inicio de sesión del hipervínculo es visible.

El comportamiento por defecto es serializar el enum en una cadena, lo cual puedes cambiar proporcionando al serializador tus propios ajustes:El inicio de sesión del hipervínculo es visible.



Así que pasamos la configuración personalizada de Refit y no usamos la configuración predeterminada, la eliminamosJsonStringEnumConverterEl convertidor está bien, el código es el siguiente:

Solución:El inicio de sesión del hipervínculo es visible.
(Fin)




Anterior:.NET/C# marco ligero de mapeo de objetos para mapas
Próximo:.NET/C# Tutorial de uso sencillo de Polly
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com