Estou tentando serializar um TimeSpan
objeto .NET para XML e ele não está funcionando. Um google rápido sugeriu que, embora TimeSpan
seja serializável, o XmlCustomFormatter
não fornece métodos para converter TimeSpan
objetos de e para XML.
Uma abordagem sugerida foi ignorar a TimeSpan
serialização e, em vez disso, serializar o resultado de TimeSpan.Ticks
(e usar new 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?
Existe uma maneira melhor de serializar um TimeSpan de e para XML?