2010-05-13 70 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

相关问题