c# – XML反序列化缺少的元素

c# – XML反序列化缺少的元素,第1张

概述我正在将一些 XML反序列化到我的课程中,这一切都很好.我想要发生的是,如果XML不包含我的一个类属性的元素,而不是将该属性设置为null,我希望它相当于String.Empty. 例如,这是XML: <Person> <Title>Mr</Title> <FullName>John Smith</FullName></Person> 这是班级: [XmlRoot("Person 我正在将一些 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 = "";}
总结

以上是内存溢出为你收集整理的c# – XML反序列化缺少的元素全部内容,希望文章能够帮你解决c# – XML反序列化缺少的元素所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1218789.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存