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 吗?
我需要在我的 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 吗?