xmlserializer.deserializeを使用したformatexceptionsの取り扱い
-
21-09-2019 - |
質問
このXMLを返すサードパーティのWebサービスがあります
<book>
<release_date>0000-00-00</release_date>
</book>
私はそれをこのクラスにゆるくしようとしています
public class Book
{
[XmlElement("release_date")]
public DateTime ReleaseDate { get; set; }
}
しかし理由は 0000-00-00
有効ではありません DateTime
, 、formatexceptionが得られます。これを処理するための最良の方法は何ですか?
解決
サードパーティのスキーマがそのフィールドをDateTimeとして定義している場合、何か問題が発生しない限り、常に有効なデータタイム値を含める必要があります。この場合、あなたはそれを文字列として脱皮化することを考慮することができます
public class Book
{
[XmlElement("release_date")]
public string ReleaseDate { get; set; }
public DateTime? GetReleaseDate
{
get
{
// parse ReleaseDate datetime string
// return the value; or null if the string contains invalid datetime.
}
}
}
他のヒント
public class Book
{
[XmlElement("release_date")]
public string StringReleaseDate
{
get {return ReleaseDate.ToString("yyyy-MM-dd");}
set {ReleaseDate = DateTime.ParseExact(value, "yyyy-MM-dd");}
}
[XmlIgnore]
public DateTime ReleaseDate {get;set;}
}
所属していません StackOverflow