Tôi đang cố gắng tuần tự hóa một TimeSpan
đối tượng .NET thành XML và nó không hoạt động. Một google nhanh chóng đã gợi ý rằng trong khi TimeSpan
có thể tuần tự hóa, thì XmlCustomFormatter
nó không cung cấp các phương thức để chuyển đổi TimeSpan
các đối tượng sang và từ XML.
Một cách tiếp cận được đề xuất là bỏ qua việc TimeSpan
tuần tự hóa, và thay vào đó tuần tự hóa kết quả của TimeSpan.Ticks
(và sử dụng new TimeSpan(ticks)
để giải tuần tự hóa ). Một ví dụ về điều này như sau:
[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); }
}
}
Trong khi điều này dường như hoạt động trong thử nghiệm ngắn gọn của tôi - đây có phải là cách tốt nhất để đạt được điều này?
Có cách nào tốt hơn để tuần tự hóa TimeSpan đến và từ XML không?