Sto cercando di serializzare un TimeSpan
oggetto .NET su XML e non funziona. Un rapido google ha suggerito che sebbene TimeSpan
sia serializzabile, XmlCustomFormatter
non fornisce metodi per convertire TimeSpan
oggetti da e verso XML.
Un approccio suggerito era di ignorare la TimeSpan
serializzazione e invece serializzare il risultato di TimeSpan.Ticks
(e utilizzarlo new TimeSpan(ticks)
per la deserializzazione). Ne segue un esempio:
[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); }
}
}
Mentre questo sembra funzionare nei miei brevi test - è questo il modo migliore per raggiungere questo obiettivo?
Esiste un modo migliore per serializzare un TimeSpan da e verso XML?