WebAPIでは、私たちの検証方法が矛盾していることに気付きました。あなたがxmlのPOSTで悪いボディ/ペイロードを送ると、デシリアライゼーションは失敗し、あなたはヌルポインタを取得します。 JSONでボディ/ペイロードを送信すると、代わりに空のオブジェクトが取得されます。それは誤解を招き、私はそれを好まない。失敗したjsonのデシリアライゼーションでヌルポインタを強制する方法はありますか?JSONシリアライザは、nullの代わりにデシリアライゼーションが失敗した場合に空のオブジェクトを作成します。
更新: デシリアライズの問題はありません。私は、DataContractSerializerとJson.netシリアライザの違いと思われる動作上の問題を抱えています。 xmlが逆直列化に失敗した場合、ペイロードはヌルです。しかし、Jsonがデシリアライズに失敗した場合、期待されるペイロードのデフォルトインスタンスをインスタンス化しているようです。悪いJSONペイロードを使用して、同じコールの
例(ペイロードがnullでない代わりに、それはペイロードクラスの既定のインスタンスである。)
:悪いXMLペイロードの例
あなたはこの違いを見せているコードを共有するだろうか? –
私はあなたがエントリーポイントで起こるようにあなたを見せる方法がわかりません。 – Sinaesthetic
まず、モデルを表示し、このモデルを引数とするWeb APIコントローラーのアクションを表示し、このアクションに投稿しているXMLとJSONを表示して、ビヘイビアーで実際に観察した違いを説明してください。これは、この質問の現段階ではかなり困難な建設的な議論を開始するのに十分なはずです。 –