讓我們假設我有一類這樣的:更改類簽名,工藝老XML序列化實例
public class SomeObject
{
public Guid InternalId { get; set; }
public string Address { get; set; }
}
我存儲這個對象的實例到ASP.NET配置文件。它的XML序列化,一切都很好。現在我想降低配置文件的大小,和我想的東西更短,以取代長 propertynames:
public class SomeObject
{
[XmlElement("id")]
public Guid InternalId { get; set; }
[XmlElement("ad")]
public string Address { get; set; }
}
的新對象得到系列化就好了,總之,一切都。但是:XmlSerializer
無法反序列化舊的XML文件。有沒有我可以申請更改類簽名的鉤子,但仍然能夠反序列化舊的實例。
我有事件處理程序XmlSerializer_UnknownElement
,然後我可以自己設置目標屬性的值,但是我只有元素的值作爲字符串,所以我應該自己解析它,這很容易出錯。
Double'XmlElements'只能提供'XmlChoiceIdentifier'。自己寫這些代碼有點不得已,我也可以用'UnknownElement'來解決它,但它會變得怪異。 – 2010-08-06 11:50:44