开发者

Handling FormatExceptions using XmlSerializer.Deserialize

I have a third party web service that returns this xml

<book>
  <release_date>0000-00-00</release_date>
</book>开发者_Python百科;

I am trying to deserialize it into this class

public class Book
{
    [XmlElement("release_date")]
    public DateTime ReleaseDate { get; set; }
}

But because 0000-00-00 isn't a valid DateTime, I get a FormatException. What's the best way to handle this?


If the 3rd party schema defines that field as datetime, then it should always contain a valid datetime value unless something goes wrong. In this case, you may consider to deserialize it as a string

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;}
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜