在web api中,我正在序列化一个包含IEnumerable
属性的类,如果属性不是空集合,我只希望序列化属性。
[DataMember(EmitDefaultValue = false)]
不起作用,因为属性不是null,因为它们是在构造函数中初始化的。
[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
执行此操作?如果没有,我怎么能做到这一点?
答案 0 :(得分: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);
}
}