Ich versuche, ein .NET- TimeSpan
Objekt in XML zu serialisieren , und es funktioniert nicht. Eine schnelle Google hat vorgeschlagen, dass es zwar TimeSpan
serialisierbar ist, XmlCustomFormatter
aber keine Methoden zum Konvertieren von TimeSpan
Objekten in und aus XML bietet .
Ein vorgeschlagener Ansatz bestand darin, das TimeSpan
für die Serialisierung zu ignorieren und stattdessen das Ergebnis von TimeSpan.Ticks
(und die Verwendung new TimeSpan(ticks)
für die Deserialisierung) zu serialisieren . Ein Beispiel hierfür folgt:
[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); }
}
}
Während dies in meinen kurzen Tests zu funktionieren scheint - ist dies der beste Weg, um dies zu erreichen?
Gibt es eine bessere Möglichkeit, eine TimeSpan von und nach XML zu serialisieren?