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