2

我目前正在研究基於單聲道的共享庫,在那裏我想盡可能多地放置應用程序的業務邏輯。 我用this helpful tutorial。 我管理把這個共享庫中的rest-requests的整個邏輯,但現在我被困在肥皂中。在WP 7和Android的共享單聲道庫中使用SoC

我使用單聲道的wsdl命令從我的wsdl生成客戶端存根(如此處所述http://www.mono-project.com/Web_Services)。 當我將生成的類放到我的共享庫的根項目C#庫中時,會出現一條警告,提示找到System.Web.Services cannot。 所以我手動包含了System.Web.Services.dll。 對於Android庫項目,我添加了對...\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\System.Web.Services.dll的引用。它編譯沒有警告。

但現在談到Windows Phone Library項目。 WP 7.5沒有System.Web.Services.dll,對不對?我嘗試過使用Mono-Touch dll,但它給了我很多編譯錯誤。

有人知道我怎麼能擺脫這個?

+0

我策劃一個跨平臺的遊戲,其將使用WCF服務,這將是一個很大的幫助,如果有人可以發表評論...... – Matthew 2012-04-26 17:55:02

回答

0

我自己實際上在生成WSDL時遇到了一些問題。事實證明,通過Mono for Android項目中的「創建Web引用」部分Visual Studio生成的類在連接到WCF Web服務時最終導致一些重大問題。不知道我在哪裏遇到這些信息,但這是我最終做的。

您需要做的是使用SILVERLIGHT SVCUtil手動創建服務參考。

在我的開發系統就位於這裏:

C:\Program Files (x86)\Microsoft SDKs\Silverlight\v3.0\Tools

我用下面的命令行把它稱爲:

slsvcutil.exe http://localhost/<path to WCF service endpoint>/service.svc /directory:"<temp directory to store generated cs file>" /noConfig /namespace:"*,<Full namespace of the generated class>"

這實際上會產生被保存在CS文件進入上面/ directory標籤指定的路徑。將生成的cs文件複製到項目目錄中,然後將其包含在項目中。

我遇到的問題迫使我尋找另一個選項,那就是我能夠使用通過Visual Studio中的「添加Web引用」選項生成的WSDL正確地提取數據,但只要嘗試過將數據傳回網絡服務,一切都會爆炸。使用由Silverlight Service Util生成的服務引用實際上爲異步操作生成了所有代碼,並且在學習如何正確管理這些異步操作之後,所有操作都像夢一樣。

由於您使用Silverlight實用程序生成這個新的WSDL,它應該可以在Windows Phone 7中正常工作。我相信所有這些引用的DLL都是System.ServiceModel dll。

我希望我能記住我在哪裏查看這些信息,因爲我想給出原作者的信用,但不幸的是,我不記得那些。

希望有幫助!

切塔尼亞Marvici