Wcf使用get; set来公共属性vs属性

时间:2010-11-18 10:54:34

标签: wcf

创建wcf类时我曾经做过

[DataContract]
Public class Customer
{
      [DataMember]
     public string Name {get;set}
}

我被告知最好这样做

[DataContract]
Public class Customer
{
      [DataMember]
     public string Name ;    
}

基本上删除了get和set,因为它会更轻

是这样的吗?

任何建议

1 个答案:

答案 0 :(得分:0)

当您使用自动属性(仅使用get; set;且没有后备变量)时,会随机生成成员变量(您可以使用Reflector或ILDASM来查看它)。根据序列化方案,此变量可以序列化。

如果重建,则会重新生成成员变量名 ,这可能会导致使用旧DLL序列化的对象反序列化时出错。以同样的方式,发送给客户的DLL可能具有OLD生成的成员变量,因此WCF通信可能会抛出异常。