Próbuję serializować TimeSpanobiekt .NET do XML i nie działa. Szybki google zasugerował, że chociaż TimeSpanmożna go serializować, XmlCustomFormatternie zapewnia on metod konwertowania TimeSpanobiektów na i z XML.
Jednym sugerowanym podejściem było zignorowanie TimeSpanserializacji 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?