Estoy tratando de serializar un TimeSpan
objeto .NET a XML y no funciona. Un rápido google ha sugerido que si bien TimeSpan
es serializable, XmlCustomFormatter
no proporciona métodos para convertirTimeSpan
objetos ay desde XML.
Un enfoque sugerido era ignorar la TimeSpan
serialización y, en su lugar, serializar el resultado de TimeSpan.Ticks
(y usarla new TimeSpan(ticks)
para la deserialización). Un ejemplo de esto sigue:
[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); }
}
}
Si bien esto parece funcionar en mis breves pruebas, ¿es esta la mejor manera de lograrlo?
¿Hay una mejor manera de serializar un TimeSpan hacia y desde XML?