2012-02-22 80 views
1

我有一個DTO,我用[Display(Name =「My Display Name」)]裝飾了屬性。WCF顯示屬性

我正在使用WCF服務,但該屬性似乎沒有工作。在檢查我的服務引用時,生成的DTO客戶端不具有應用的屬性。

也許我做錯了什麼?

回答

1

您創建的類和對象服務器端不存在客戶端。當你使用WCF時,你正在將一個類的實例序列化爲數據(通常是XML,但也可能是二進制文件,具體取決於你的綁定),通過互聯網發送,然後將其反序列化爲類似的實例一流的客戶端。這個相似的類通常由基於服務的WSDL的服務引用創建。

這就是爲什麼你的服務器端類的私有字段不會出現在你的客戶端類。如果你想要客戶端可用的屬性,你將不得不手動將它們添加到客戶端。

這樣說了...如果你控制服務器和客戶端,你可以使用一些技巧來確保你在兩邊都使用同一個類。最簡單的方法是將所有的DataContract類放入一個單獨的程序集中,並從服務器和客戶機中引用它。如果使用服務引用生成客戶端代理,請務必在生成代理時檢查「在引用的程序集中重用類型」。

+1

謝謝,多數民衆贊成我認爲,已經有一個dto庫,我共享電線的兩側,並遠離它。看起來再次退後一步。 – David 2012-02-22 18:05:39

0

你不能。這些屬性不會與SOAP消息中的DTO序列化。這是因爲屬性不是平臺獨立的。認爲你的服務適用於不需要.NET實現的客戶端。