ฉันพยายามทำให้เป็นTimeSpanวัตถุ. NET กับ 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 หรือไม่