c# .net 动态调用webservice的三种方式

c# .net 动态调用webservice的三种方式

ID:21563443

大小:21.85 KB

页数:6页

时间:2018-10-23

c# .net 动态调用webservice的三种方式_第1页
c# .net 动态调用webservice的三种方式_第2页
c# .net 动态调用webservice的三种方式_第3页
c# .net 动态调用webservice的三种方式_第4页
c# .net 动态调用webservice的三种方式_第5页
资源描述:

《c# .net 动态调用webservice的三种方式》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、动态调用webservice的三种方式多数时候我们通过"添加Web引用..."创建客户端代理类的方式调用WebService,但在某些情况下我们可能需要在程序运行期间动态调用一个未知的服务。在.NETFramework的System.Web.Services.Description命名空间中有我们需要的东西。具体步骤:1.从目标URL下载WSDL数据。2.使用ServiceDescription创建和格式化WSDL文档文件。3.使用ServiceDescriptionImporter创建客户端代理类。4.使用CodeDom动态创建客户端代理类程序集。5.

2、利用反射调用相关WebService方法。上述步骤需要引用如下四个名称空间:usingSystem.Web.Services.Description;//WS的描述//以下几个用于根据描述动态生成代码并动态编译获取程序集usingSystem.CodeDom;usingMicrosoft.CSharp;usingSystem.CodeDom.Compiler;上述几个名称空间中包括如下几个重要的类:usingSystem.Web.Services.Description下:ServiceDescription//WS描述ServiceDescriptio

3、nImporter//通过描述生成客户端代理类,特别注意其中的Style以下是MSDN对其的描述:XMLWebservices的接口通常由Web服务描述语言(WSDL)文件来说明。例如,若要获取有关使用http://localhost/service.asmx处公开的ASP.NET的Web服务的WSDL说明,只需导航到http://localhost/service.asmx?WSDL。使用ServiceDescriptionImporter类可以方便地将WSDL说明中包含的信息导入到System.CodeDom.CodeCompileUnit对象。通过

4、调整Style参数的值,可以指示ServiceDescriptionImporter实例生成客户端代理类(通过透明调用该类可提供Web服务的功能)或生成抽象类(该类封装Web服务的功能而不实现该功能)。如果将Style属性设置为Client,则ServiceDescriptionImporter生成客户端代理类,通过调用这些类来提供说明的Web服务的功能。如果将Style属性设置为Server,则ServiceDescriptionImporter实例生成抽象类,这些类表示所说明的XMLWebservices的功能而不进行实现。然后,可以通过编写从这些抽

5、象类继承的类来对其进行实现,并实现相关的方法。usingSystem.CodeDom下:CodedomUnit//它用于设定动态代码的名称空间,类名等,可以通过ServiceDescriptionImporter.Import()方法将WS的描述代码写入该类,以作动态编译用usingSystem.CodeDom.Compiler下:CodedomProvider//用于创建和检索代码生成器和代码编译器的实例,我们主要用到其实现子类CShareCodeProvider可以直接用CShareCodeProviderprovider=newCShareCode

6、Provider()来生成,或者用CodedomProvider.CreateProvider("CSharp")来生成ICodeCompiler//用于编译基于System.CodeDom的源代码表示形式。它通过CodedomProvider的CreateCompiler()方法来CompilerResults//表示从编译器返回的编译结果。它由ICodeCompiler根据指定的编译器设置从指定的CodeCompileUnit所包含的System.CodeDom树中编译程序集并返回。CompiledAssembly属性指示编译的程序集。了解如上信息后

7、,就可动态调用WS了。OK,看看具体的例子。我们要调用的目标WebService,其URL是http://localhost:60436/Learn.WEB/WebService.asmxHelloWorld.asmx[WebService(Namespace="http://www.rainsts.net/",Description="我的Web服务")][WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]publicclassWebService:System.Web.Services

8、.WebService{ publicWebService(){ }  [Web

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。