Saya mencoba untuk membuat serial TimeSpan
objek .NET ke XML dan tidak berfungsi. Google cepat telah menyarankan bahwa sementara TimeSpan
serializable, XmlCustomFormatter
tidak menyediakan metode untuk mengkonversi TimeSpan
objek ke dan dari XML.
Salah satu pendekatan yang disarankan adalah untuk mengabaikan TimeSpan
serialisasi, dan bukannya membuat serialisasi hasil TimeSpan.Ticks
(dan digunakan new TimeSpan(ticks)
untuk deserialisasi). Contohnya sebagai berikut:
[Serializable]
public class MyClass
{
// Local Variable
private TimeSpan m_TimeSinceLastEvent;
// Public Property - XmlIgnore as it doesn't serialize anyway
[XmlIgnore]
public TimeSpan TimeSinceLastEvent
{
get { return m_TimeSinceLastEvent; }
set { m_TimeSinceLastEvent = value; }
}
// Pretend property for serialization
[XmlElement("TimeSinceLastEvent")]
public long TimeSinceLastEventTicks
{
get { return m_TimeSinceLastEvent.Ticks; }
set { m_TimeSinceLastEvent = new TimeSpan(value); }
}
}
Meskipun ini tampaknya berfungsi dalam pengujian singkat saya - apakah ini cara terbaik untuk mencapai ini?
Apakah ada cara yang lebih baik untuk membuat serial TimeSpan ke dan dari XML?