为什么Visual Studio使用WCF服务引用的支持字段?

时间:2010-07-27 18:10:43

标签: .net xml wcf serialization datacontract

许多人都知道,我可以使用DataContract属性来标记在WCF服务中序列化为XML的类。

例如,我可以创建一个DataContract

  

< DataContract()>公共类fooClass
      < Datamember()>公共fooString为String
      结束班

当我向将接收此DataContract的代码添加服务引用时,我看到设计器生成的类将fooString作为具有支持字段的公共属性。我的问题是,为什么设计师使用支持领域?我认为没有任何理由不直接访问fooString。

1 个答案:

答案 0 :(得分:4)

这是MS使用的代码设计“标准”样式。并且有充分理由使用properties代替public fields。即使在服务器端,您也将拥有这样的数据合同:

[DataContract]
class MyComplexType
{
   [DataMember]
   public int id;
   [DataMember]
   public string name;  
} 

在客户端代理类中,您将把它们作为名为idFieldnameField的支持字段......

因此,它与WCF本身无关,因此使用properties代替public fields可以轻松找到指导意见。