カスタム エラー メッセージを提供する方法、または少なくとも XML 投稿の要素名を Web API に指定する方法を見つけようとしています。現在、私が得ているモデル状態エラーは
XML 文書にエラーがあります (2、4)。
このエラーの内部例外は、次の詳細情報を提供します。
文字列「false fds」は有効なブール値ではありません。
XML を検索してその値が存在する場所を特定するのではなく、無効な値を含む要素を示す、より具体的なものをユーザーに返すことができるようにしたいと考えています。
私が投稿しているXMLは次のとおりです。
<?xml version='1.0'?>
<checkin>
<checkinType>1</checkinType>
<server>server1</server>
<notes>New Checkin</notes>
<productCheckins>
<ihsCheckin>
<vendor>IBM</vendor>
<make>HTTP Server</make>
<model></model>
<version>8.5.5.0</version>
<installLocation>/opt/IBM</installLocation>
<is64Bit>false fds</is64Bit>
</ihsCheckin>
</productCheckins>
</checkin>
変換しようとしているクラスは次のとおりです。
[XmlRoot("checkin")]
public class Checkin
{
[XmlElement("checkinTime")]
public DateTime CheckinTime { get; set; }
[XmlElement("checkType")]
public int CheckinType { get; set; }
[XmlElement("notes")]
public string Notes { get; set; }
[XmlElement("server")]
public string Server { get; set; }
[XmlArray("productCheckins")]
[XmlArrayItem("wasCheckin", typeof(WASCheckin))]
[XmlArrayItem("ihsCheckin", typeof(IHSCheckin))]
public List<ProductCheckin> ProductCheckins { get; set; }
}
public class ProductCheckin
{
[XmlElement("vendor")]
public string Vendor { get; set; }
[XmlElement("make")]
public string Make { get; set; }
[XmlElement("model")]
public string Model { get; set; }
[XmlElement("version")]
public string Version { get; set; }
[XmlElement("installLocation")]
public string InstallLocation { get; set; }
[XmlElement("is64Bit")]
public bool Is64Bit { get; set; }
}
基本的に、エラーは is64Bit 要素に関連していると言いたいだけですが、XML を手動で解析する以外にそれを行う方法はまだ見ていません。