Manipulación FormatExceptions utilizando XmlSerializer.Deserialize
-
21-09-2019 - |
Pregunta
Tengo un servicio web de terceros que devuelve este XML
<book>
<release_date>0000-00-00</release_date>
</book>
Estoy tratando de deserializar en esta clase
public class Book
{
[XmlElement("release_date")]
public DateTime ReleaseDate { get; set; }
}
Pero debido a que no es un 0000-00-00
DateTime
válida, aparece un FormatException. ¿Cuál es la mejor manera de manejar esto?
Solución
Si el esquema tercera Parte define como aquel campo de fecha y hora, entonces siempre debe contener un valor de fecha y hora válida a menos que algo va mal. En este caso, puede considerar deserializar como una cadena
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.
}
}
}
Otros consejos
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;}
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow