开发者

Handling FormatExceptions using XmlSerializer.Deserialize

开发者 https://www.devze.com 2022-12-24 16:20 出处:网络
I have a third party web service that returns this xml <book> <release_date>0000-00-00</release_date>

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

精彩评论

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