.net – 如何使XML序列化DateTimeOffset属性?

前端之家收集整理的这篇文章主要介绍了.net – 如何使XML序列化DateTimeOffset属性?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当数据表示为Xml时,此类中的DateTimeOffset属性不会被渲染.我需要做什么来告诉Xml序列化,以便将其适当地作为DateTime或DateTimeOffset?
[XmlRoot("playersConnected")]
public class PlayersConnectedViewData
{
    [XmlElement("playerConnected")]
    public PlayersConnectedItem[] playersConnected { get; set; }
}

[XmlRoot("playersConnected")]
public class PlayersConnectedItem
{
    public string name { get; set; }
    public DateTimeOffset connectedOn { get; set; }  // <-- This property fails.
    public string server { get; set; }
    public string gameType { get; set; }
}

和一些样本数据…

<?xml version="1.0" encoding="utf-8"?>
<playersConnected 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <playerConnected>
    <name>jollyroger1000</name>
    <connectedOn />
    <server>log1</server>
    <gameType>Battlefield 2</gameType>
  </playerConnected>
</playersConnected>

更新

我希望可能会有一种方式通过属性,我可以在物业上装饰…

奖金问题

以任何方式摆脱在根节点中声明的两个命名空间?我是不是该?

这是几年之后,但这里是使用ISO 8601完成序列化DateTimeOffset的快速简单的方法
[XmlElement("lastUpdatedTime")]
public string lastUpdatedTimeForXml // format: 2011-11-11T15:05:46.4733406+01:00
{
   get { return lastUpdatedTime.ToString("yyyy-MM-ddTHH:mm:ss.fffffffzzz"); }
   set { lastUpdatedTime = DateTimeOffset.Parse(value); } 
}
[XmlIgnore] 
public DateTimeOffset lastUpdatedTime;
原文链接:https://www.f2er.com/xml/292823.html

猜你在找的XML相关文章