仅通过WCF发送填充的对象属性?

时间:2010-05-13 00:04:59

标签: c# wcf

我有一个通过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只通过网络发送填充的属性?发送整个对象似乎可能浪费带宽。

1 个答案:

答案 0 :(得分:4)

是的,你可以这样做

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

        ........    

        /* repeat another X times */
}

有关EmitDefaultValue属性检查MSDN

的更多详细信息