Como serializar um TimeSpan para XML
Estou tentando serializar um .NETTimeSpan
objeto para XML e não está funcionando. Um google rápido sugeriu que enquantoTimeSpan
é serializável, oXmlCustomFormatter
não fornece métodos para converterTimeSpan
objetos de e para XML.
ma abordagem sugerida foi ignorar oTimeSpan
para serialização e, em vez disso, serialize o resultado deTimeSpan.Ticks
(E usenew TimeSpan(ticks)
para desserialização). Um exemplo disso é o seguinte:
[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); }
}
}
Embora isso pareça funcionar nos meus breves testes - esta é a melhor maneira de conseguir isso?
xiste uma maneira melhor de serializar um TimeSpan de e para XM