如何在c#中使用xmlWriter时跳过null的元素

时间:2015-11-18 19:19:37

标签: c# xml enums

我写了一个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,我不想序列化它。

要将它添加到上面的东西,我得到的所有值都不是枚举。因此,只有枚举使用我的自定义类,而不是使用不同的类。

0 个答案:

没有答案