0
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類和序列化/反序列化代碼。
如何使反序列化代碼,以便從以前序列化的System.DateTime反序列化新類MyDate?
IXmlSerializable.ReadXml從不調用。我不知道爲什麼。有任何想法嗎? – 2010-09-24 09:00:03
如果你已經在'MyDate'類型上實現了它,它應該總是被序列化器調用......不知道爲什麼它不會是我害怕的,它在我使用它之前一直都在工作。 – 2010-09-24 09:23:51