gpt4 book ai didi

c# - XML 反序列化缺失元素

转载 作者:数据小太阳 更新时间:2023-10-29 02:20:38 25 4
gpt4 key购买 nike

我正在将一些 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 反序列化缺失元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21579524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com