.NET TimeSpan
객체를 XML 로 직렬화하려고하는데 작동하지 않습니다. 빠른 구글 TimeSpan
은 직렬화가 가능하지만XmlCustomFormatter
TimeSpan
객체를 XML 로 변환 하거나 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); }
}
}
이것이 내 간단한 테스트에서 작동하는 것처럼 보이지만 이것이 이것을 달성하는 가장 좋은 방법입니까?
XML과 TimeSpan을 직렬화하는 더 좋은 방법이 있습니까?