Unity生成WebService代理类

普通的.net程序中,如果我们想引用webService,只需在项目中右键选择添加服务引用,然后在地址栏中输入Webservice地址,单击“转到”按钮,找到服务后再单击确定,Visual Studio就会自动在项目中生成一个WebReference的文件夹和一些文件,这些文件即是WebService保存在本地的代理,以方便我们调用WebService。例如,某网上股票查询的免费WebService地址为:http://webservice.webxml.com.cn/WebServices/StockInfoWS.asmx?wsdl,在Visual Studio中添加服务引用后:

然而在Unity中,并没有地方可以让我们直接添加服务引用生成代理类。这个时候就要手动生成了。那么该如何去做?
其实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
    的类提供一个完全限定的名称。默认语言为“CS”(CSharp)。
3: n:TestDemo:生成代理类所使用的命名空间
3: d:\TestService.cs :输出路径及生成文件名称
4: http://webservice.webxml.com.cn/WebServices/StockInfoWS.asmx?wsdl:web service的wsdl地址
之后会提示生成成功:

找到生成的.CS文件并将其放到Unity工程下的某个文件夹中,这样就可以调用这个文件下的代理来访问Webservice了。
这样生成代理类是不是有些麻烦呢?好,来看一下我做的一个工具吧:

说明:
1.生成的类语言是C#
2.WebServices的服务列表暂时没做(因为我太懒了),点击“转到”就自动生成代理类了
3.输出路径默认为D盘

转载于:https://www.cnblogs.com/infly123/p/4032941.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值