【发布时间】:2015-07-20 07:53:21
【问题描述】:
我正在尝试使用以下节点反序列化 XML 对象:
<startTime>2012-03-19T11:31:03.000Z</startTime>
<endTime>2012-03-19T11:31:03.000Z</endTime>
这些是我用来将 XML 反序列化为的类的属性:
[System.Xml.Serialization.XmlElementAttribute(DataType = "date", ElementName = "startTime")]
public DateTime StartTime { get; set; }
[System.Xml.Serialization.XmlElementAttribute(DataType = "date", ElementName = "endTime")]
public DateTime EndTime { get; set; }
最后,这是我用来反序列化 XML 的代码:
Stream resultStream = await response.Content.ReadAsStreamAsync();
var serializer = new XmlSerializer(typeof(T));
return serializer.Deserialize(resultStream) as T;
但是,代码会抛出异常,告诉我该字符串未被识别为有效的 DateTime 对象 - 基本异常表明 XML 文件在 (1,1926) 处有错误,该错误直接指向两个时间戳.
我所能找到的关于此错误消息的所有信息似乎都是由格式的错误使用引起的(即日期字符串中使用了错误的特殊字符)。但是,就我而言,格式似乎 100% 符合 MSDN 描述。
谁能帮我指出错误?
【问题讨论】:
-
您似乎在说
DataType="date"您希望仅一个日期 - 但您提供的是一个日期和一个时间.如果DataType="dateTime"会发生什么?
标签: c# xml serialization