RestSharp用DateTime元素作为子元素反序列化列表

本文关键字:元素 反序列化 列表 DateTime RestSharp | 更新日期: 2023-09-27 18:08:03

我用RestSharp反序列化以下xml有问题:

<dates>
<date>2013-04-30</date>
<date>2013-04-16</date>
<date>2013-04-05</date>
<date>2013-04-20</date>
<date>2013-04-06</date>
<date>2013-04-13</date>
<date>2013-04-04</date>
</dates>

显然,我需要将其反序列化为DateTime对象的列表。所以我尝试了像

这样的东西
public class Dates : List<DateTime>
{
}

,但这是不可能的,因为DateTime类名与元素的"日期"名称不匹配。当然,我设置的日期格式如下:

request.XmlSerializer.DateFormat = "yyyy-MM-dd";

下一步是

public class Dates
{
  [SerializeAs(Name="date")]
  List<DateTime> dates;
}

但是这也不工作,集合仍然返回空。我理解将dateTime解析和列表与单个元素作为子元素混合是……不方便的。是否可以用默认的RestSharp XmlParser解析这种xml ?

RestSharp用DateTime元素作为子元素反序列化列表

您正在创建自己的list类吗?你似乎误解了如何创建XML可序列化对象。

试试这个:

public class MyXmlObject
{
    [XmlArray(ElementName = "dates")]
    [XmlArrayItem(ElementName = "date")]
    List<DateTime> Dates;
}