我写了一个WriteXml方法
public void WriteXml(XmlWriter writer)
{
if (this.value != null)
{
var type = this.value.GetType();
var memInfo = type.GetMember(this.value.ToString());
if (memInfo.Length > 0)
{
var attrs = memInfo[0].GetCustomAttributes<XmlEnumAttribute>();
if (attrs != null && attrs.IsNotEmpty())
{
writer.WriteValue(attrs.ToString());
return;
}
}
writer.WriteValue(this.value.ToString());
}
}
我写的全班的主要目的是定制枚举。问题是当在服务之间调用序列化时,很少有使用类的自定义枚举,如果枚举中有特殊值或空格,则获取其属性并返回,如果有正常的枚举,那么它也可以工作。但是如果枚举值中存在null,则它将发回null,这将创建我不想创建的空标记。
如何不序列化具有null的值?
空标记只是<XYZ/>
我在
之类的枚举下有很多值insurance
product
name
N/A
Last Days
以上所有这些都被检索但是如果有null我不想序列化一个值。
简单来说,如果this.value
返回null,我不想序列化它。
要将它添加到上面的东西,我得到的所有值都不是枚举。因此,只有枚举使用我的自定义类,而不是使用不同的类。