C# 如何在xml和c中处理null#
假设我正在尝试将xml反序列化到我的类中,如果任何值对于decimal或datetime为null或空,那么如何处理nullC# 如何在xml和c中处理null#,c#,xml-serialization,C#,Xml Serialization,假设我正在尝试将xml反序列化到我的类中,如果任何值对于decimal或datetime为null或空,那么如何处理null [XmlElement(ElementName = "Salary" , typeof(double))] public string Salary { get; set; } [XmlElement(ElementName = "BirthDate" , typeof(DateTime))] public string Phone { get; set; } 假设x
[XmlElement(ElementName = "Salary" , typeof(double))]
public string Salary { get; set; }
[XmlElement(ElementName = "BirthDate" , typeof(DateTime))]
public string Phone { get; set; }
假设xml中的生日或薪水为null或空,那么在反序列化时如何处理它。需要解决。谢谢。用它的可空类型替换“double”,相当于“double?”应该可以。然后简单地处理对象中缺少值的问题
或者,您可以实现垫片属性:
使用Nullabe类型将轻松解决问题。您可以使用Microsoft企业库验证应用程序块。或者只需将类型更改为可空。您有两个选项,如中所述 指定以指定默认值
[System.ComponentModel.DefaultValueAttribute ("0")]
[XmlElement(ElementName = "Salary" , typeof(double))]
public string Salary { get; set; }
[System.ComponentModel.DefaultValueAttribute ("02-May-2011")]
[XmlElement(ElementName = "BirthDate" , typeof(datetime))]
public string Phone { get; set; }
另一个选项是使用特殊模式创建XmlSerializer识别的布尔字段,并将XmlIgnoreAttribute应用于该字段。模式以propertyNameSpecified的形式创建。例如,如果有一个名为“MyFirstName”的字段,您还将创建一个名为“MyFirstNameSpecified”的字段,该字段指示XmlSerializer是否生成名为“MyFirstName”的XML元素。
什么是shim属性。详细讨论。@user728750-类似于此公共可空条{get;set;}