Предположим, у меня есть такой класс:
public class SomeObject
{
public Guid InternalId { get; set; }
public string Address { get; set; }
}
Я храню экземпляры этого объекта в профиле ASP.NET.Он получает сериализованный XML, и все в порядке.Теперь я хочу уменьшить размер профиля и заменить имена свойств long на что-то более короткое:
public class SomeObject
{
[XmlElement("id")]
public Guid InternalId { get; set; }
[XmlElement("ad")]
public string Address { get; set; }
}
Новые объекты сериализуются очень хорошо, коротко, и все,Однако XmlSerializer
не может десериализовать старые файлы XML.Есть ли какой-нибудь хук, который я могу применить, чтобы изменить сигнатуру классов, но все же быть в состоянии десериализовать старые экземпляры.
У меня есть обработчик событий XmlSerializer_UnknownElement
, и тогда я могу сам установить значение целевого свойстваУ меня есть только значение элемента в виде строки, поэтому я должен проанализировать его самостоятельно, что весьма подвержено ошибкам.