2011-06-06 22 views
9

Ben şu varsa sınıfı: hiç hata istekte bulunursaWCF'de isteğe bağlı DataMembers olması mümkün mü?

[DataContract] 
public class GetColorsRS 
{ 
    [DataMember(Name = "Colors", Order = 0, IsRequired=true)] 
    public List<Color> Colors { get; set; } 

    [DataMember(Name = "Errors", Order = 1, IsRequired=false)] 
    public List<Error> Errors { get; set; } 
} 

, bir Hatalar düğüme sahip olmaması bir yanıt geri göndermek istediğiniz, ancak bir Hatalar düğümünü geri verir boş. IsRequired'ın bunun için olduğunu düşündüm.

Sadece fark ettim EmitDefaultValue, bu benim aradığım şey nedir?

+0

Neden boş bir hata listeniz yok? Temelde aynı şeyi (herhangi bir dağınık hack ya da hile olmadan) elde eder? –

+1

@marc_s, Bunu da yapabilirim. Ancak EmitDefaultValue = false ayarının yapılması, hack veya karışık bir numara değildir. – Xaisoft

+0

Dikkat: http://stackoverflow.com/questions/5382402/why-is-using-datamemberemitdefaultvalue-false-not-recommended –

cevap

14

DataMember'in varsayılan değerini serileştirmek istemiyorsanız, EmitDefaultValue öğesinin false olarak ayarlanması gerektiğini belirledim.

[DataMember(Name = "Errors", Order = 1, IsRequired=false,EmitDefaultValue=false)] 
public List<Error> Errors { get; set; }