您的位置:首页 > 其它

用XmlSerializer 序列化TimeSpan问题

2011-10-11 14:03 267 查看
今天在做个wp7的demo,发现xml序列化的时候TimeSpan这个字段总是为TimeSpan.Zero,很是郁闷,怎么整都不行,换成double格式的就可以。我就尝试在网上查找相关资料,看到Gildor Wang 有篇文章,才真正的确信,真的有这个问题: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序列化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: