我正在尝试将 .NETTimeSpan
对象序列化为 XML,但它不起作用。一个快速的谷歌建议虽然TimeSpan
是可序列化的,XmlCustomFormatter
但不提供将TimeSpan
对象转换为 XML 和从 XML 转换的方法。
一种建议的方法是忽略TimeSpan
for 序列化,而是序列化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 和从 XML 序列化?