У меня есть класс:
public class MyClass
{
[XmlElement("Date")]
public DateTime Date { get; set; }
}
XML был сериализован в файл:
var myClass = new MyClass() { Date = new DateTime(2010, 09, 24) };
new XmlSerializer(typeof(MyClass)).Serialize(fileStream, myClass);
Результат:
<MyClass>
<Date>2010-09-24T00:00:00</Date>
</MyClass>
После этого был создан новый класс с указанием даты:
public class MyDate
{
public int Year { get; set; }
public int Month { get; set; }
public int Date { get; set; }
}
И был использован в MyClass вместо System.DateTime:
public class MyClass
{
[XmlElement("Date")]
public MyDate Date { get; set; }
}
Мне нужно, чтобы следующий код работал нормально:
MyClass myClass = (MyClass)new XmlSerializer(typeof(MyClass)).Deserialize(fileStream);
Проблема в том, что я не могу изменить MyClass. Единственное, что я могу изменить, это класс MyDate и код сериализации / десериализации.
Как сделать код десериализации так, чтобы новый класс MyDate был десериализован из ранее сериализованного System.DateTime?