2010-03-15 39 views
0

我有一組使用Silverlight Client連接到的web服務。我使用「添加服務引用」或SLSVCUTIL.exe工具生成的代理連接到此服務。到目前爲止,我只使用過一種服務。現在我想在同一臺服務器上使用另一項服務。重用服務代理

問題是,第一個服務爲我生成了一組代理類,第二個服務將重新使用相同的一組類(以及額外的服務/類),例如,

CustomerService.SaveCustomer(Customer customer);

OrderService.CheckCustomerLevel(Customer customer);

問題是,當我添加對第二個服務的引用時,我無法重複使用第二個命名空間(VS錯誤),並且當我使用不同的命名空間時,生成的類儘管基本相同,駐留在不同的名稱空間中,因此不同,我最終得到兩個不同名稱空間中的Customer類。

反正這個呢?我只需要擁有兩套服務,即重用客戶類。在生成代理類時,我已經嘗試過「在彙編/所有程序集中重用類型」複選標記,但似乎沒有效果。

任何幫助,非常感謝。

回答

1

我以前遇到過這個問題,我唯一能提出的解決方案是將兩個Web服務合併到一個Web服務中。這似乎是添加服務引用/ SLSvcUtil做事方式的限制。

如果你使用的是Silverlight 4,你可以試試Silverlight/.NET assembly sharing來解決這個問題(儘管我自己並沒有嘗試過)。換句話說,在Silverlight中編譯包含數據傳輸對象的程序集,然後與.NET/WCF後端進行共享。這樣,如果您選擇「重新使用程序集中的類型」,它(理論上)會將兩個現有的Silverlight類型實際重新用於這兩個服務引用。

+0

不可能共享程序集,因爲服務是在java中開發的EJB 3.0 Web服務。 – 2010-03-16 09:56:27

+0

這並沒有解決我的問題,但我會接受它作爲答案。對於任何人想知道,如果你的服務是一個.NET服務,提供的解決方案可能會起作用,但對於用其他語言和平臺實現的服務,這是不可能的。 – 2010-03-18 16:25:02