Próbuję serializować TimeSpan
obiekt .NET do XML i nie działa. Szybki google zasugerował, że chociaż TimeSpan
można go serializować, XmlCustomFormatter
nie zapewnia on metod konwertowania TimeSpan
obiektów na i z XML.
Jednym sugerowanym podejściem było zignorowanie TimeSpan
serializacji i zamiast tego serializacja wyniku TimeSpan.Ticks
(i użycie new TimeSpan(ticks)
do deserializacji). Oto przykład:
[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); }
}
}
Chociaż wydaje się, że działa to w moich krótkich testach - czy to najlepszy sposób na osiągnięcie tego?
Czy istnieje lepszy sposób na serializację TimeSpan do iz XML?