我有一个通过WCF发送的对象,它本质上是一个属性持有者 - 它可能具有大量属性,即最多100个,但通常只设置一个小子集,最多10个实例
示例:
[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只通过网络发送填充的属性?发送整个对象似乎可能浪费带宽。
答案 0 :(得分:4)
是的,你可以这样做
[DataContract(Namespace = "...")]
public class Monkey
{
[DataMember(EmitDefaultValue=false, ....)]
public string Arms { get; set; }
........
/* repeat another X times */
}
有关EmitDefaultValue属性检查MSDN
的更多详细信息