gpt4 book ai didi

c# - 可以使用 XmlAttributes 有选择地 XmlIgnore 吗?

转载 作者:数据小太阳 更新时间:2023-10-29 01:44:53 26 4
gpt4 key购买 nike

我有一个相当大的类要序列化为Xml,为了减少空间浪费,我想有选择地XmlIgnore一些类属性。例如,类中的一个属性被赋值的次数只有十分之一左右,如果我将序列化属性编码如下

[XmlAttribute]
public String WorkClass
{
get { return _workClass; }
set { _workClass = value; }
}

如果没有值(大部分时间),它会一遍又一遍地序列化为

WorkClass=""

是否有一个选项或属性可以在其值为空时忽略该属性进行序列化,但如果它不为空则不忽略它?

最佳答案

您可以为每个不希望序列化的值创建方法

WorkClass 包含空字符串以外的内容时,以下方法将返回 true,如果您使用的是 .NET Framework 4,则可以选择使用 string.IsNullOrWhitespace() 也会检查空格 ' '

public bool ShouldSerializeWorkClass() {
return !string.IsNullOrEmtpy(WorkClass);
}

当 Xml Serializer 运行时,它会根据命名约定寻找这个方法,然后选择是否序列化该属性。

方法的名称应始终以 ShouldSerialize 开头,然后以属性名称结尾。然后你只需要根据你想要的任何条件返回一个 bool 值,关于是否序列化该值。

关于c# - 可以使用 XmlAttributes 有选择地 XmlIgnore 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9672232/

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