1

我有一个返回此 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。处理这个问题的最佳方法是什么?

4

2 回答 2

4

如果第 3 方架构将该字段定义为日期时间,那么它应该始终包含有效的日期时间值,除非出现问题。在这种情况下,您可以考虑将其反序列化为字符串

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.
      }
    }
}
于 2010-03-21T03:03:31.820 回答
2
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;}
}
于 2010-03-21T03:08:59.013 回答