c# – XML反序列化缺少的元素
发布时间:2020-12-16 01:59:51 所属栏目:百科 来源:网络整理
导读:我正在将一些 XML反序列化到我的课程中,这一切都很好.我想要发生的是,如果XML不包含我的一个类属性的元素,而不是将该属性设置为null,我希望它相当于String.Empty. 例如,这是XML: Person TitleMr/Title FullNameJohn Smith/FullName/Person 这是班级: [XmlR
我正在将一些
XML反序列化到我的课程中,这一切都很好.我想要发生的是,如果XML不包含我的一个类属性的元素,而不是将该属性设置为null,我希望它相当于String.Empty.
例如,这是XML: <Person> <Title>Mr</Title> <FullName>John Smith</FullName> </Person> 这是班级: [XmlRoot("Person")] public sealed class PersonObject { [XmlElement("Title")] public string NamePrefix { get; set; } [XmlElement("FullName")] public string FullName { get; set; } [XmlElement("JobTitle")] public string JobTitle { get; set; } } 目前,如果我反序列化到此对象,JobTitle将设置为null.我希望将其设置为空字符串,就像我在XML中传递JobTitle一样,但将值设置为空. 是否可以使用序列化方法中的某种属性来执行此操作? 解决方法
您可以使用具有默认值的支持字段来执行此操作:
private string jobTitle = ""; [XmlElement("JobTitle")] public string JobTitle { get {return jobTitle;} set {jobTitle = value;} } 或者在默认构造函数中设置它: public PersonObject() { JobTitle = ""; NamePrefix = ""; FullName = ""; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |