Timespan不能用XmlSerializer序列化?

今天在用XmlSerializer序列化一个类时发现一个TimeSpan类型的属性内容始终为空,后来实验发现Timespan类型对象的序列化结果总是空的,虽然还不清楚原因,但是在StackOverflow上看到了不错的一个解决方法:

[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); }
   
}
}
其实也就是用一个long的对应值(Ticks)来代替TimeSpan序列化。

posted on 2010-12-18 18:57  Gildor Wang  阅读(499)  评论(0编辑  收藏  举报

导航