加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 忽略XML序列化中的空值

发布时间:2020-12-15 21:30:00 所属栏目:百科 来源:网络整理
导读:我有一块看起来像的xml SubscriptionProduct SubscriptionProductIdentifier SubscriptionProductIdentifierType SubscriptionProductIDType01/SubscriptionProductIDType ID123456/ID ValueAAAA/Value /SubscriptionProductIdentifierType SubscriptionProd
我有一块看起来像的xml

<SubscriptionProduct>
    <SubscriptionProductIdentifier>
      <SubscriptionProductIdentifierType>
        <SubscriptionProductIDType>01</SubscriptionProductIDType>
        <ID>123456</ID>
        <Value>AAAA</Value>
      </SubscriptionProductIdentifierType>
      <SubscriptionProductIdentifierType xsi:nil="true" />
    </SubscriptionProductIdentifier>
    <SubscriptionProductDescription />
  </SubscriptionProduct>

如您所见,SubscriptionProductIdentifierType是一个集合,在这种情况下只包含一个项目.
如何忽略第二个空项目?

我已经尝试添加xml忽略,但它删除了整个集合,我只希望在没有数据的情况下删除集合中的第二个项目.

[System.Xml.Serialization.XmlIgnoreAttribute()]
public SubscriptionProductIdentifierType[] SubscriptionProductIdentifier {
    get {
        return this.subscriptionProductIdentifierField;
    }
    set {
        this.subscriptionProductIdentifierField = value;
    }
}

任何帮助将非常感谢.

亲切的问候
扎尔

解决方法

您的集合中没有一个项目,但有两个项目,其中一项为空

只是在添加期间,甚至在返回之前过滤空项,具体取决于您的业务逻辑

public SubscriptionProductIdentifierType[] SubscriptionProductIdentifier {
    get {
        return this.subscriptionProductIdentifierField.Where(s=>s!=null).ToArray();
    }
...
}

希望这可以帮助

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读