1

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ますか?そうでない場合、どうすればこれを達成できますか?

4

1 に答える 1

0

コレクションに何かを追加する必要があるまで、コレクションを null のままにしておくことはできますか? 例えば:

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 に答える