Я намагаюся серіалізувати .NET- TimeSpan
об’єкт до 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 і з нього?