1

在 web api 中,我正在序列化一个包含属性的类,IEnumerable并且我只希望在属性不是空集合的情况下对其进行序列化。

[DataMember(EmitDefaultValue = false)]不起作用,因为属性不为空,因为它们是在构造函数中初始化的。

[DataContract]
public class Linkable : ILinkable {

    [DataMember(EmitDefaultValue = false)]
    public IList<ILink> links { get; set; }

    [DataMember(EmitDefaultValue = false)]
    public IList<ILink> linkTemplates { get; set; }

    public Linkable() {
        links = new List<ILink>();
        linkTemplates = new List<ILink>();
    }
}

有没有办法做到这一点Attribute?如果没有,我怎么能做到这一点?

4

1 回答 1

0

在需要向它们添加一些东西之前,你可以让集合为空吗?例如:

public class Linkable {
    public IList<ILink> links { get; set; }

    public void AddLink(ILink link) {
        if (links == null) {
            links = new List<ILink>();
        }
        links.Add(link);
    }
}
于 2013-06-10T14:29:27.323 回答