今天在用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序列化。

相关文章:

  • 2021-12-01
  • 2021-07-19
  • 2022-02-03
  • 2022-02-05
  • 2022-12-23
  • 2022-02-16
  • 2021-08-17
猜你喜欢
  • 2022-12-23
  • 2021-09-03
  • 2022-02-27
  • 2021-07-13
  • 2021-11-19
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案