许多人都知道,我可以使用DataContract
属性来标记在WCF服务中序列化为XML的类。
例如,我可以创建一个DataContract
:
< DataContract()>公共类fooClass
< Datamember()>公共fooString为String
结束班
当我向将接收此DataContract的代码添加服务引用时,我看到设计器生成的类将fooString作为具有支持字段的公共属性。我的问题是,为什么设计师使用支持领域?我认为没有任何理由不直接访问fooString。
答案 0 :(得分:4)
这是MS使用的代码设计“标准”样式。并且有充分理由使用properties
代替public fields
。即使在服务器端,您也将拥有这样的数据合同:
[DataContract]
class MyComplexType
{
[DataMember]
public int id;
[DataMember]
public string name;
}
在客户端代理类中,您将把它们作为名为idField
,nameField
的支持字段......
因此,它与WCF本身无关,因此使用properties
代替public fields
可以轻松找到指导意见。