Я пытаюсь сериализовать TimeSpan
объект .NET в XML, и он не работает. Быстрый Google предположил, что, хотя TimeSpan
сериализуемо, XmlCustomFormatter
он не предоставляет методы для преобразования TimeSpan
объектов в и из XML.
Один из предложенных подходов состоял в том, чтобы игнорировать TimeSpan
сериализацию и вместо этого сериализовать результат TimeSpan.Ticks
(и использовать new TimeSpan(ticks)
для десериализации). Пример этого следующий:
[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); }
}
}
Хотя, похоже, это работает в моем кратком тестировании - это лучший способ достичь этого?
Есть ли лучший способ сериализации TimeSpan в и из XML?