2

我目前正在开发一个基于 mono 的共享库,我想在其中放置尽可能多的应用程序业务逻辑。我使用了这个有用的教程。我设法将休息请求的整个逻辑放在这个共享库中,但现在我被肥皂困住了。

我使用wsdlmono 命令从我的 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 库项目。System.Web.Services.dllWP 7.5没有,对吧?我尝试使用 Mono-Touch dll,但它给了我很多编译错误。

有人知道我怎么能摆脱这个吗?

4

1 回答 1

0

实际上,我自己对生成的 WSDL 有一些问题。事实证明,在 Mono for Android 项目中通过 Visual Studio 的“创建 Web 引用”部分生成的类在连接到 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 正确提取数据,但是一旦我尝试传递数据将线路备份到 Web 服务,一切都崩溃了。使用 Silverlight Service Util 生成的服务参考实际上为异步操作正确生成了所有代码,并且在学习了如何正确管理这些异步操作之后,一切都像梦一样工作。

由于您正在使用 Silverlight 实用程序生成这个新的 WSDL,因此它应该可以在 Windows Phone 7 上正常工作。我相信所有这些引用的 DLL 是 System.ServiceModel dll。

我希望我能记得我在哪里看到这些信息,因为我想感谢原作者,但不幸的是,我不记得了。

希望能有所帮助!

柴坦亚·马尔维奇

于 2012-05-03T15:58:40.243 回答