C#XmlSerializer反序列化日期格式

时间:2016-09-07 10:59:29

标签: c# postgresql date xml-serialization xmlserializer

我需要将(从其他方面)XML文件中的日期带到我的C#应用​​程序中的PostgreSQL表中。

我的问题是,如果我将字段声明为这样的字符串:

[XmlAttribute("startDate")]
public string StartDate { get; set; }

它根本没有被反序列化(值为null)。如果我将它声明为DateTime:

[XmlAttribute("startDate")]
public DateTime StartDate { get; set; }

无论我进入XML字段,我总是得到值01.01.0001 00:00:00

我尝试使用YYYY-MM-DD,YYYY / MM / DD和DD.MM.YYYY输入日期。我究竟做错了什么?它适用于其他字符串和整数。

编辑:

示例XML:

<?xml version="1.0" encoding="utf-8" ?>
<command name="TestCommand">
  <weeks>11</weeks> <!-- this works fine -->
  <startDate>2017/02/01</startDate> <!-- this doesn't -->
</command>

使用XmlSerializer.Deserialize()将反序列化发生到Config文件中,该文件由我给出上述示例的字段组成

1 个答案:

答案 0 :(得分:2)

好的答案很简单。这不是XmlAttribute ...这是XmlElement。 将属性更改为:

[XmlElement("startDate")]
public DateTime StartDate { get; set; }

你确定元素&#34;周&#34;工作正常并用XmlAttribute标记?