gpt4 book ai didi

.net - 如何阻止 XmlSerializer 发出空标签?

转载 作者:行者123 更新时间:2023-12-04 14:52:28 25 4
gpt4 key购买 nike

我有一个这样的对象,

public class UserObj
{
public string First {get; set;}
public string Last {get; set;}
public addr Address {get; set;}

}

public class addr
{
public street {get; set;}
public town {get; set;}
}

现在,当我在它上面使用 XmlSerializer 并且街道和城镇是空的时,我在 XML 输出中得到了这个,
 <Address />

有没有办法不输出这个空标签?

谢谢

最佳答案

您可以实现 ShouldSerializeAddress决定是否应该序列化 Address 属性的方法:

public bool ShouldSerializeAddress()
{
return Address != null
&& !String.IsNullOrEmpty(Address.street)
&& !String.IsNullOrEmpty(Address.town);
}

如果该方法存在此签名,则序列化程序将在序列化属性之前调用它。

或者,您可以实现 AddressSpecified具有相同作用的属性:
public bool AddressSpecified
{
get
{
return Address != null
&& !String.IsNullOrEmpty(Address.street)
&& !String.IsNullOrEmpty(Address.town);
}
}

关于.net - 如何阻止 XmlSerializer 发出空标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2958151/

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