Reputation: 29120
I have a third party web service that returns this xml
<book>
<release_date>0000-00-00</release_date>
</book>
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?
Upvotes: 1
Views: 1173
Reputation: 161773
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;}
}
Upvotes: 2
Reputation: 26658
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.
}
}
}
Upvotes: 4