Cyb*_*ist 8 c# xml xml-serialization
我有一个相当大的类来序列化为Xml,并且为了减少浪费的空间,有选择地想要选择XmlIgnore的一些类属性.例如,类中的一个属性仅为十分之一左右分配一个值,如果我对序列化属性进行如下编码,如下所示
[XmlAttribute]
public String WorkClass
{
get { return _workClass; }
set { _workClass = value; }
}
Run Code Online (Sandbox Code Playgroud)
如果没有值(大部分时间),则会反复序列化
WorkClass=""
Run Code Online (Sandbox Code Playgroud)
是否存在一个选项或属性,如果其值为空,则忽略序列化属性,但如果它不为空则不忽略它?
Ant*_*haw 11
您可以为希望未序列化的每个值创建方法
true当WorkClass包含除空字符串之外的其他内容时,将返回以下方法,如果您使用的是.NET Framework 4,则可以选择使用string.IsNullOrWhitespace()哪个也检查空格' '.
public bool ShouldSerializeWorkClass() {
return !string.IsNullOrEmtpy(WorkClass);
}
Run Code Online (Sandbox Code Playgroud)
当Xml Serializer运行时,它将根据命名约定查找此方法,然后选择是否序列化该属性.
方法的名称应始终ShouldSerialize以属性名称开头,然后以属性名称结束.然后你只需要根据你想要的条件返回一个布尔值,关于是否序列化值.
| 归档时间: |
|
| 查看次数: |
2406 次 |
| 最近记录: |