我正在尝试反序列化一个包含以下节点的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)处存在错误,直接指向两个时间戳。
我所能找到的关于这个错误信息的所有内容都是由格式不正确引起的(即日期字符串中使用了错误的特殊字符)。但是,在我的情况下,该格式似乎完全符合MSDN的描述。
有人可以帮助我指出错误吗?
DataType="date"
表示你只期望获得日期,然而你提供了日期和时间。如果DataType="dateTime"
会发生什么? - Damien_The_Unbeliever