C# XmlSerializer 反序列化日期格式

C# XmlSerializer Deserialize Date format

我需要在我的 C# 应用程序中将 XML 文件中的日期(除其他外)带到 PostgreSQL table。

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

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

它根本没有反序列化(值为空)。如果我像这样将其声明为 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() 到配置文件中,该文件由我在上面示例中给出的字段组成

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

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

您确定元素 "weeks" 工作正常并且标有 XmlAttribute 吗?