2010-05-13 77 views
3

我有一個對象是通過WCF發送的,它本質上是一個屬性持有者 - 它可能具有大量屬性,即最多100個,但通常只設置一個小子集,例如最多10個。只通過WCF發送已填充的對象屬性?

例子:

[DataContract(Namespace = "...")] 
public class Monkey 
{ 
     [DataMember] 
     public string Arms { get; set; } 

     [DataMember] 
     public string Legs { get; set; } 

     [DataMember] 
     public string Heads { get; set; } 

     [DataMember] 
     public string Feet { get; set; } 

     [DataMember] 
     public string Bodies { get; set; } 

     /* repeat another X times */ 
} 

有沒有辦法告訴WCF只通過網絡發送的填充屬性?這似乎是一個潛在的浪費帶寬發送完整的對象。

回答

4

是的,它是可能的,你可以作出這樣

[DataContract(Namespace = "...")] 
public class Monkey 
{ 
     [DataMember(EmitDefaultValue=false, ....)] 
     public string Arms { get; set; } 

     ........  

     /* repeat another X times */ 
} 

更多關於EmitDefaultValue物業檢查的內容MSDN