ฉันพยายามทำให้เป็น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 หรือไม่