2010-09-03 31 views
0

我非常確定這是一個愚蠢的問題,但無論如何這裏。我有一個WCF數據服務暴露一個對象,讓我們說人。此Person對象位於Domain.Person的命名空間中。我有一個帶WCF數據服務代理的客戶端。該客戶端具有與引用的Domain.Person類一起使用的代碼。但是,代理正在返回一個不同的類型,Client.Person,並且它抱怨無法在兩者之間進行轉換。WCF數據服務代理類

所以,除了我是愚蠢的(可能),是不是代理應該返回一種Domain.Person?如果不是,那麼Client.Person應該不一樣嗎?對不起,有點困惑。

回答

1

我對WCF數據服務沒有經驗,但在我看來,代理生成了它自己版本的Domain.Person類,並且正在使用它。
添加'普通'wcf服務引用時,可以指定在生成代理時可以重用哪些類型的程序集。這隱藏在您選擇WCF服務的對話框中的「高級」按鈕下。
如果你確定這是啓用的,我會嘗試打開生成的代理(顯示所有文件,你可以看到生成的.cs文件),並將類型與你的域類型進行比較。如果有任何顯着差異,請將它們添加到您的域類型中,刪除服務引用並再次添加它。沖洗 - 重複...

再一次,我的WCF數據服務的經驗是不存在的,所以也許有人有一個更加明確的答案。

+0

啊,對,我檢查了包含服務引用的項目,並注意到包含實際域對象的項目未被引用。然後,我嘗試添加此作爲參考,以瞭解客戶端是Sliverlight,並且它不能引用域對象項目,因爲這不是Silverlight項目。很明顯,域對象應該是客戶不可知的,還有什麼進一步的想法?非常感謝你的幫助。 – 2010-09-03 09:23:11

+0

要麼將​​你的域對象隔離在Silverlight類庫中,而要在你的客戶端和服務器中引用它(這可以從Silverlight 4開始 - 參見http://msmvps.com/blogs/kevinmcneish/archive/2010/05/28/silverlight或者創建一個silverlight類庫並將文件鏈接到它中,就像這裏解釋的一樣:http://stackoverflow.com/questions/3122169 /添加引用到Silverlight的項目距其它非Silverlight的項目 – stombeur 2010-09-03 11:03:32