Обработка форматехпений с использованием xmlserializer.deserialize
-
21-09-2019 - |
Вопрос
У меня есть сторонняя веб -служба, которая возвращает этот XML
<book>
<release_date>0000-00-00</release_date>
</book>
Я пытаюсь покинуть его в этот класс
public class Book
{
[XmlElement("release_date")]
public DateTime ReleaseDate { get; set; }
}
Но потому что 0000-00-00
не является действительным DateTime
, Я получаю формат. Как лучше всего справиться с этим?
Решение
Если сторонняя схема определяет это поле как DateTime, то она всегда должна содержать действительное значение DateTime, если что -то не пойдет не так. В этом случае вы можете подумать о том, чтобы десериализировать его как строку
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;}
}
Не связан с StackOverflow