c#XML反序列化时间字符串列表以列出DateTime对象
我在这个问题上有点困难。 我从一个API调用返回了一堆xml(我无法控制)。数据看起来像这样,但有更多的条目c#XML反序列化时间字符串列表以列出DateTime对象,c#,xml,datetime,serialization,getter-setter,C#,Xml,Datetime,Serialization,Getter Setter,我在这个问题上有点困难。 我从一个API调用返回了一堆xml(我无法控制)。数据看起来像这样,但有更多的条目 `<time>10:00:00</time> <go>true</go> <time>10:30:00</time> <go>false</go> ` `10:00:00 真的 10:30:00 假的 ` 我可以将它反序列化为一个列表,两个字符串列表 列出时间和开始时间 但是,我确实
`<time>10:00:00</time>
<go>true</go>
<time>10:30:00</time>
<go>false</go>
`
`10:00:00
真的
10:30:00
假的
`
我可以将它反序列化为一个列表,两个字符串列表
列出时间和开始时间
但是,我确实需要将这段时间反序列化为datetime对象。
现在我有以下工作,但只针对单个实例,而不是列表。毫无疑问,我在接二连三方面遇到了麻烦
[XmlIgnore]
public List<DateTime> DoNotSerialize { get; set; }
[XmlElement("time")]
public List<string> time
{
get { return DoNotSerialize.ToString("HH:MM:SS") }
set { DoNotSerialize = DateTime.Parse(value); }
}
[XmlIgnore]
公共列表不序列化{get;set;}
[XmlElement(“时间”)]
公开列表时间
{
获取{return DoNotSerialize.ToString(“HH:MM:SS”)}
set{DoNotSerialize=DateTime.Parse(value);}
}
尝试使用以下方法:
[XmlIgnore]
public List<DateTime> DoNotSerialize { get; set; }
[XmlElement("time")]
public List<string> time
{
get { return DoNotSerialize.Select(item => item.ToString("yyyy-MM-dd")).ToList(); }
set { DoNotSerialize = value.Select(item => DateTime.Parse(item)).ToList(); }
}
[XmlIgnore]
公共列表不序列化{get;set;}
[XmlElement(“时间”)]
公开列表时间
{
获取{return DoNotSerialize.Select(item=>item.ToString(“yyyy-MM-dd”)).ToList();}
set{DoNotSerialize=value.Select(item=>DateTime.Parse(item)).ToList();}
}
(几天前我也遇到了类似的问题,但是是序列化而不是反序列化。如果您感兴趣,请检查…谢谢dmitry。如前所述,我可以通过多种方式使它与字符串的单个实例一起工作。“我对列表部分有问题。@Andrewmacnouton您解析xml的代码在哪里?嘿,LB。代码已经在那里了,但我做了一些小的修改以使其更具可读性。”。当它是DateTime DoNotSerialize和String time时,代码工作得很好——只是将其作为列表使用,这让我感到困惑。