.NET TimeSpan
オブジェクトをXML にシリアル化しようとしていますが、機能しません。簡単なグーグルTimeSpan
はシリアライズ可能であるXmlCustomFormatter
がTimeSpan
、XMLとの間でオブジェクトを変換するメソッドを提供しないことを示唆しています。
提案されたアプローチの1つは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との間でシリアル化するより良い方法はありますか?