私はASP.NET Web API のXMLとJSONのフォーマットをリソースとして使用できるように、ASP.NET Web APIに取り組んでいます。私のWeb APIサービスのリソース・モデル・タイプには、ユーザーが送信しないプロパティーがあります。しかし、私はそれを返信するように設定しなければなりません。Web API要求処理中にXMLシリアル化用のJsonSerializerSettings.MissingMemberHandlingに相当するものはありますか?
たとえば、新しいアイテムをデータベースに保存するPOSTリクエストがあります。私のサービスは、同じリソース・モデルとそれが保存されていることを示す追加のプロパティーで応答します。
私はこの追加プロパティーを自分のリソース・モデルに追加しました。私がFiddlerでXMLリクエストを渡してテストすると、新しいプロパティが見つからないと言ってHTTP400
というメッセージが表示されます。 JSON入力の場合、おそらくデフォルトのJSON設定JsonSerializerSettings.MissingMemberHandling
が原因で問題なく動作しています。
XMLデシリアライゼーションと同等のプロパティがありますか?
サンプル入力XML:
<MyResource>
<Property1>ABC</Property1>
<Property2>DEF</Property2>
</MyResource>
サンプル出力のXML私は送るつもり:
The property Id was missing
マイリソース・モデルは次のようになりますように
<MyResource>
<Property1>ABC</Property1>
<Property2>DEF</Property2>
<Id>123</Id>
</MyResource>
エラーになります。
public string Property1 { get; set; }
public string Property2 { get; set; }
public int Id { get; set; }
モデルを 'DataContract'で装飾し、プロパティを' DataMember(IsRequired = false) 'で装飾しました。まだ同じエラーが発生しています。私のメディアタイプフォーマッタの設定を掘り下げて、そこに何かを調整する必要があるかどうかを確認しようとしています。 –