[XmlAttribute]
public String WorkClass
{
get { return _workClass; }
set { _workClass = value; }
}
如果没有值(大部分时间),则会反复序列化为
WorkClass=""
如果值为空,是否有一个选项或属性会忽略序列化属性,但如果它不为空则不会忽略它?
答案 0 :(得分:11)
您可以为您希望没有序列化的每个值创建方法
当true
包含空字符串以外的其他内容时,以下方法将返回WorkClass
,如果您使用的是.NET Framework 4,则可以选择使用string.IsNullOrWhitespace()
检查空格' '
。
public bool ShouldSerializeWorkClass() {
return !string.IsNullOrEmtpy(WorkClass);
}
当Xml Serializer运行时,它将根据命名约定查找此方法,然后选择是否序列化该属性。
方法的名称应始终以ShouldSerialize
开头,然后以属性名称结尾。然后你只需要根据你想要的条件返回一个布尔值,关于是否序列化值。