普通的.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盘

Unity生成WebService代理类的更多相关文章

  1. 解析利用wsdl.exe生成webservice代理类的详解

    利用wsdl.exe生成webservice代理类:根据提供的wsdl生成webservice代理类1.开始->程序->Visual Studio 2005 命令提示2.输入如下红色标记部 ...

  2. 利用wsdl.exe生成webservice代理类

    通常要手动生成WebService代理类需要把一句生成语句,如 wsdl.exe /l:cs /out:D:\Proxy_UpdateService.cs  http://localhost:1101 ...

  3. 手动生成WebService代理类

    方式一: 手动生成WebService代理类需要把一句生成语句,如 wsdl.exe /l:cs /out:D:/ProxyServices.cs http://localhost/WebServic ...

  4. Visual Studio生成webservice代理类

    首先点击 vs菜单栏->工具 ,选择 外部工具, 在弹出的窗口中点击 添加, 然后在“标题”行中输入"WSDL生成代理类", "命令"行中输入" ...

  5. vs2013 手动生成webservice代理类wsdl

    第一步: 第二步: 第三步: 至此wsdl代理类生成成功!

  6. .net 代理类(WebService代理类的详解 )

    http://hi.baidu.com/654085966/item/53ee8c0f108ad78202ce1b1d   -----------转自 客户端调用Web Service的方式我现在知道 ...

  7. WCF通过SVCUtil.exe生成客户端代理类和配置文件(转)

    WCF服务调用通过两种常用的方式: 1:一种是借助代码生成工具SvcUtil.exe或者添加服务引用的方式. 2:一种是通过ChannelFactory直接创建服务代理对象进行服务调用. 本文只针对通 ...

  8. C# 利用VS自带的WSDL工具生成WebService服务类

    C# 利用VS自带的WSDL工具生成WebService服务类   WebService有两种使用方式,一种是直接通过添加服务引用,另一种则是通过WSDL生成. 添加服务引用大家基本都用过,这里就不讲 ...

  9. wcf生成客户端代理类步骤及语句

    通过svcutil.exe工具生成客户端代理类和客户端的配置文件 .在运行中输入cmd打开命令行 ()cd C:\Program Files (x86)\Microsoft SDKs\Windows\ ...

随机推荐

  1. java基础-day22

    第11天  多线程 今日内容介绍 u  多线程概述 u  线程实现 u  多线程安全问题产生 & 解决方案 第1章    多线程概述 学习多线程之前,我们先要了解几个关于多线程有关的概念. A ...

  2. PCA原理分析

    动机 在机器学习领域中,我们常常会遇到维数很高的数据,有些数据的特征维度高达上百万维,很显然这样的数据是无法直接计算的,而且维度这么高,其中包含的信息一定有冗余,这时就需要进行降维,总的来说,我们降维 ...

  3. html5 datalist

    教程:http://www.w3school.com.cn/html5/html5_datalist.asp 提供自动完成的文本框

  4. (使用STL自带的排序功能进行排序7.3.2)POJ 2092 Grandpa is Famous(结构体排序)

    /* * POJ_2092.cpp * * Created on: 2013年11月1日 * Author: Administrator */ #include <iostream> #i ...

  5. shell 命令 grep -v

    grep -v shell命令中,grep命令,是对文本行的搜索命令.grep -v就是反向文本行搜索. 当控制台输出很多时,有很多是我们不想看到的,就可以用到grep -v命令 举个栗子:ls -l ...

  6. cxGrid实现取消过滤和排序后定位到首行(单选和多选)

    cxGrid实现取消过滤和排序后定位到首行(单选和多选) 原创 2013年10月06日 18:42:24 2107 DataContoller中的函数FocusedRecordIndex没有反应,Fo ...

  7. DDD Code First 迁移数据实现EF CORE的软删除,值对象迁移配置

    感谢Jeffcky大佬的博客: EntityFramework Core 2.0全局过滤 (HasQueryFilter) https://www.cnblogs.com/CreateMyself/p ...

  8. SpringCloud实现集群和负载均衡

    Spring cloud是一个基于Spring Boot实现的服务治理工具包,在微服务架构中用于管理和协调服务的. 组成部分 spingcloud的五大神兽 服务发现——Netflix Eureka ...

  9. Linux系统Bash的常用功能(9)

    了解了基本的Linux文件文件系统的概念后,我们将更深入的了解一下Linux的其他方面的内容,那就是我们所使用的用户接口,也就是大家常听到的 『Shell』 ,『这个shell并不是黑客反弹的shel ...

  10. POJ 2442(优先队列 k路归并 堆)

    Description Given m sequences, each contains n non-negative integer. Now we may select one number fr ...