普通的.net程序中,如果我们想引用webService,只需在项目中右键选择添加服务引用,然后在地址栏中输入Webservice地址,单击“转到”按钮,找到服务后再单击确定,Visual Studio就会自动在项目中生成一个WebReference的文件夹和一些文件,这些文件即是WebService保存在本地的代理,以方便我们调用WebService。例如,某网上股票查询的免费WebService地址为:http://webservice.webxml.com.cn/WebServices/StockInfoWS.asmx?wsdl,在Visual Studio中添加服务引用后:
其实Visual Studio能自动生成代理类也只不过是调用了微软的WebService代理生成工具wsdl.exe,就是这个文件帮助我们生成了代理类。而在Unity中,该文件位于unity安装目录下,例如我的是:D:\Program Files (x86)\Unity\Editor\Data\Mono\lib\mono\2.0\wsdl.exe
Unity中的dll不同于普通Visual Studio程序集,首先,在Unity中将"Api Compatibility Level"改成2.0:
打开路径D:\Program Files (x86)\Unity\Editor\Data\Mono\lib\mono\2.0,找到System.ServiceModel.dll、System.ServiceModel.Web.dll、System.Web.Services.dll这三个程序集,将其拷到你的Unity工程下,Unity会自动添加对这些程序集的引用:
运行CMD命令行程序执行:
D:\Program Files (x86)\Unity\Editor\Data\Mono\lib\mono\2.0>wsdl.exe /
language:CS/ /
n:TestDemo /out:
d:\TestService.cs
http://webservice.webxml.com.cn/WebServices/StockInfoWS.asmx?wsdl
1:
D:\Program Files (x86)\Unity\Editor\Data\Mono\lib\mono\2.0:Unity下的程序集路径
2:
language:CS:生成代理类语言:请从“CS”、“VB”、“JS”、“VJS”、
“CPP”中选择,或者为实现 System.CodeDom.Compiler.CodeDomProvider
3:
n:TestDemo:生成代理类所使用的命名空间
4:
http://webservice.webxml.com.cn/WebServices/StockInfoWS.asmx?wsdl:web service的wsdl地址
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。