Je suis en train de sérialiser un .NET TimeSpan
objet XML et il ne fonctionne pas. Un rapide google a suggéré que, même TimeSpan
est sérialisable, l' XmlCustomFormatter
ne permet pas de fournir des méthodes pour convertir TimeSpan
des objets vers et à partir de XML.
Une suggestion a été d'ignorer l' TimeSpan
pour la sérialisation, et, au lieu de sérialiser le résultat d' TimeSpan.Ticks
( new TimeSpan(ticks)
pour la désérialisation). Un exemple de ce qui suit:
[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); }
}
}
Bien que cela semble fonctionner dans mon test - est-ce la meilleure façon d'atteindre cet objectif?
Est-il une meilleure façon de sérialiser un laps de Temps et à partir de XML?