Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 3045|Antwoord: 0

[Bron] .NET/C# gebruikt Refit om een enumparameter enum typefout op te vragen

[Link kopiëren]
Geplaatst op 23-07-2023 15:13:05 | | | |
Vereisten: Als er een enumtype in de parameter zit, zal de interface een "400 Bad Request"-foutmelding teruggeven, omdat Refit het enum in het object standaard omzet naar een string, en de interface de string niet kan omzetten naar een enumfout, als volgt:

{
    "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
    "titel": "Er zijn één of meer validatiefouten opgetreden.",
    "status": 400,
    "traceId": "00-3aef79a91ce9c411883953c9aaccb48a-68917b547ba8a2e5-00",
    "fouten": {
        "Vereiste": [
            "Het vereiste veld is vereist."
        ],
        "$.taalToestemmingen": [
            "De JSON-waarde kon niet worden omgezet naar LanguagePermissionsEnum. Pad: $.languagePermissions | LineNumber: 0 | BytePositionInLine: 145."
        ]
    }
}



De officiële verklaring is dat de reden om enums standaard om te zetten naar strings is omdatVerhoog de leesbaarheid en vergemakkelijke het lezen van parameterinhoudsinformatie。 Referentie:De hyperlink-login is zichtbaar.

Het standaardgedrag is om het enum te serialiseren naar een string, wat je kunt aanpassen door de serializer je eigen instellingen te geven:De hyperlink-login is zichtbaar.



Dus geven we de aangepaste Refit-instellingen door en gebruiken we de standaardinstellingen niet, verwijderen we hetJsonStringEnumConverterDe converter is in orde, de code is als volgt:

Oplossing:De hyperlink-login is zichtbaar.
(Einde)




Vorig:.NET/C# lichtgewicht Mapster object mapping-framework
Volgend:.NET/C# Eenvoudige Gebruik Polly tutorial
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com