Mar*_*ark 3 c# xml asp.net serialization
我正在将一些XML反序列化到我的课程中,这一切都很好.我想要发生的是,如果XML不包含我的一个类属性的元素,而不是将该属性设置为null,我希望它相当于String.Empty.
例如,这是XML:
<Person>
<Title>Mr</Title>
<FullName>John Smith</FullName>
</Person>
Run Code Online (Sandbox Code Playgroud)
这是班级:
[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; }
}
Run Code Online (Sandbox Code Playgroud)
目前,如果我反序列化到此对象,JobTitle将设置为null.我希望将其设置为空字符串,就像我在XML中传递JobTitle一样,但将值设置为空.
是否可以使用序列化方法中的某种属性来执行此操作?
您可以使用具有默认值的支持字段来执行此操作:
private string jobTitle = "";
[XmlElement("JobTitle")]
public string JobTitle { get {return jobTitle;} set {jobTitle = value;} }
Run Code Online (Sandbox Code Playgroud)
或者在默认构造函数中设置它:
public PersonObject()
{
JobTitle = "";
NamePrefix = "";
FullName = "";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5964 次 |
| 最近记录: |