仅在非空时序列化List属性
本文关键字:序列化 List 属性 | 更新日期: 2023-09-27 18:17:38
在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
?如果没有,我该如何做到这一点?
你能让集合为空,直到你需要添加一些东西给他们吗?例如:
public class Linkable {
public IList<ILink> links { get; set; }
public void AddLink(ILink link) {
if (links == null) {
links = new List<ILink>();
}
links.Add(link);
}
}