c# - C# XML 反序列化器不反序列化日期
问题描述
我XML
在C#
. 我有以下内容XML
:
<?xml version="1.0" encoding="utf-8"?>
<head>
<person>
<name>Jim Bob</name>
<dateOfBirth>1990-01-01</dateOfBirth>
</person>
<policy>
<number>1</number>
<pet>
<name>Snuffles</name>
<dateOfBirth>2000-01-01</dateOfBirth>
</pet>
</policy>
</head>
有了这个,我试图将它映射到以下类:
public class head
{
public policy policy { get; set; }
public person person { get; set; }
}
public class person
{
public string name { get; set; }
public DateTime dateOfBirth { get; set; }
[XmlElement("policy")]
public List<policy> policy { get; set; }
}
public class policy
{
public string number { get; set; }
[XmlElement("pet")]
public List<pet> pet { get; set; }
}
public class pet
{
public string name { get; set; }
[XmlElement("dateOfBirth")]
public DateTime dateOfBirth { get; set; } //<~~ Issue is with this property
}
问题是反序列化时没有填充类中的dateOfBirth
属性,pet
我不知道为什么。这是因为与类dateOfBirth
中的属性命名冲突person
吗?
解决方案
尝试以下使用 ParseExact 的代码。如果您仍然遇到问题,您可能必须处理 DateTime 为 null 的情况:
public class pet
{
public string name { get; set; }
private DateTime _dateOfBirth { get; set; } //<~~ Issue is with this property
[XmlElement("dateOfBirth")]
public string DateOfBirth
{
get { return _dateOfBirth.ToString("yyyy-MM-dd"); }
set { _dateOfBirth = DateTime.ParseExact(value, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture); }
}
}
推荐阅读
- angular - Angular 修复 - 无法绑定到 formGroup,因为它不是表单的已知属性
- sql - 如何在 PostgreSQL 中处理执行计划?
- javascript - 这两个代码块有什么区别?
- typescript - 有没有办法从嵌套的标记联合中提取成员?
- selenium - 当我在 testng 中使用并行时脚本不输入数据
- javascript - ReferenceError: webpack_base_uri 未定义
- python - dicts 列表 - 获取重复的数量
- c - 什么是 C 中的更新流?
- python - 将张量中的一些元素随机设置为零(计算时间短)
- c# - 如何将 RestSharp AddFile 转换为处理二进制数据?