2010-08-27 96 views
2

我有一個Silverlight類庫,我想在我的Silverlight和我的WebService項目中使用。類庫,Silverlight和Web服務

我能夠在沒有任何問題的情況下在兩個項目中創建和引用庫,但是當我嘗試使用Silerlight項目庫中的任何類時,我的庫和Asmx之間出現模糊的引用錯誤Webservice(顯然,silverlight項目認爲類庫中的類存在於web服務中)。

我該如何解決這個問題?我試過重建和清理,但似乎沒有工作。誰能幫忙?

回答

0

聲音就像你傳遞給Silverlight的對象,通過WCF服務,是類庫中的相同對象。在這種情況下,生成的Web引用對象將被賦予相同的名稱。鏈接到庫後會給你兩組具有相同名稱的對象。

如果您安裝RIA服務,只需在擴展之前在類文件名中添加「.shared」,即可在客戶端和服務器之間共享代碼。 ASMX服務所以上世紀 :)

,如果你不想學習整個偉大的Web鴻溝(這我會建議)共享對象的RIA服務方式,需要分開數據對象來自您實際想要共享客戶端和服務器端的功能。

要給出關於您當前設置的更具體的建議,我需要更多地瞭解它的結構。

+0

我基本上是在沒有web服務知識的情況下開始這個項目,ASMX碰巧是我挑選的那個,但現在它已經變得相當大,所以我沒有費心改變它。就其結構而言,我擁有庫中的所有「數據類」,並且在我的Web服務類中有一個使用「ClassLibrary」,並引用了類庫DLL(我的所有Web調用都在此處類)。此外,我在我的Silverlight項目中使用了類庫引用以及USING「ClassLibrary」和「WebService」。當我嘗試在silverlight中使用數據類時,我遇到了錯誤的錯誤。 – gfeli 2010-08-27 14:50:41

+0

基本上這是RIA服務旨在解決的情況。儘管將RIA服務的幾十個(甚至100個)類別移到RIA服務中似乎令人望而生畏,但它並不像聽起來那樣痛苦,而且會讓您的生活更輕鬆。我現在有配對項目中的RIA服務庫。您將一個鏈接到您的SL應用程序,另一個鏈接到該網站。作品一種享受。對RIA做一些快速研究,然後做出決定。我無法用一個傳統的圖書館來簡單回答你目前的情況。乾杯 – 2010-08-27 17:58:56

0

的技術可以使用在你的別名using語句:

using MyNameSpace = My.Name.Space; 
using MyWebService = My.Web.Service; 

然後訪問所有這些別名你的對象,以消除歧義。

+0

這個工程,但我得到了我想避免的類型轉換問題。 – gfeli 2010-08-27 14:43:41

+0

@gfeli - 您是否已將名稱空間指定到根級別,以便Web服務不會接管對象的名稱空間?如果你的web服務返回像My.Full.NameSpace.Type這樣的完整命名空間對象,那麼不應該存在類型轉換問題。 – 2010-08-27 14:55:35