2010-07-27 28 views
1

許多人會意識到,我可以使用DataContract屬性來標記一個類,以在WCF服務中將其序列化爲XML。爲什麼Visual Studio使用WCF服務引用的支持字段?

例如,我可以創建一個DataContract從而:

< DataContract()>公共類fooClass
<數據成員()>公共fooString作爲字符串
末級

當我將一個服務引用添加到將接收此DataContract的代碼中,我發現設計器生成的類將fooString作爲具有後臺字段的公共屬性。我的問題是,爲什麼設計師使用後臺?我沒有看到任何理由不直接訪問fooString。

回答

4

這是MS使用的代碼設計「標準」風格。並有一個很好的理由使用properties而不是public fields。即使在服務器端你會有這樣的數據合同:

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

在客戶端代理類,你將有他們作爲名字類似idFieldnameField支持字段...

所以它是沒有連接到WCF本身,這是爲什麼使用properties而不是public fields的問題,您可以輕鬆找到指導。

相關問題