この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 3045|答える: 0

[出典] .NET/C#はRefitを使ってenumパラメータのenum型エラーを要求します。

[リンクをコピー]
掲載地 2023/07/23 15:13:05 | | | |
要件:パラメータにenum型がある場合、インターフェースは「400 Bad Request」エラーを返します。Refitはデフォルトでオブジェクト内のenumを文字列に変換するため、インターフェースは文字列をenumエラーに変換できません。以下のように:

{
    「type」: 「https://tools.ietf.org/html/rfc7231#section-6.5.1」
    「タイトル」:「1つ以上の検証エラーが発生しました。」
    「ステータス」:400、
    "traceId": "00-3aef79a91ce9c411883953c9aaccb48a-68917b547ba8a2e5-00",
    「エラーズ」: {
        「REQ」:[
            「要求フィールドが必要だ。」
        ],
        "$.languagePermissions": [
            「JSON値はLanguagePermissionsEnumに変換できませんでした。 パス: $.languagePermissions | 行番号:0 | バイト位置インライン:145。」
        ]
    }
}



公式の説明では、列挙をデフォルトで文字列に変換する理由は、可読性を高め、パラメータ内容情報の読み方を容易にします。 参考:ハイパーリンクのログインが見えます。

デフォルトの動作は、列挙を文字列にシリアライズすることで、シリアライザーに独自の設定を提供することで変更できます。ハイパーリンクのログインが見えます。



そこで、カスタムのRefit設定を渡し、デフォルト設定は使わずに削除しますJsonStringEnumConverterコンバーター自体は問題ありません。コードは以下の通りです:

解決:ハイパーリンクのログインが見えます。
(終わり)




先の:.NET/C# 軽量なMapsterオブジェクトマッピングフレームワーク
次に:.NET/C# シンプルユース Pollyチュートリアル
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com