当数据表示为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的快速简单的方法:
原文链接:https://www.f2er.com/xml/292823.html[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;