NET动态调用WebService
NET动态调用WebService
这不是一篇教你了解WebService的博文,也不是对WebService的深入理解, 这是一篇教你在开发过程中,如果动态的调用WebService一个方法.
在比较常见的WebService调用,我们一般是选择在项目中,新建添加引用的方式来引用WebService服务. 例如下面的方式 :



下面介绍一种方式用来动态的调用WebService References :


1 public partial class Component1 : Component
2 {
3 public Component1()
4 {
5 InitializeComponent();
6 }
7
8 public Component1(IContainer container)
9 {
10 container .Add(this );
11
12 InitializeComponent();
13 }
14 }



1 [ WebServiceBinding (Namespace = "http://tempuri.org/" )]
2 public class Component1 : SoapHttpClientProtocol
3 {
4 public Component1()
5 {
6 InitializeComponent();
7 }
8
9 public Component1(IContainer container)
10 {
11 container . Add(this );
12
13 InitializeComponent();
14 }
15 }

SoapHttpClientProtocol SoapHttpClientProtocol类可以直接访问指定的webService的指定方法若要与 XML Web services 通信,请为要调用的 XML Web services 创建一个间接或直接从 WebClientProtocol 派生的代理类。 可以不用手动创建代理类,而使用 Web 服务描述语言工具 (Wsdl.exe) 为给定 XML Web services 的服务说明创建代理类。 当为 SOAP 协议生成代理类时,对 XML Web services 方法的同步调用通过 Invoke 方法进行,而异步调用通过BeginInvoke 方法和 EndInvoke 方法进行。
1 <add key="ServiceAddress" value="http://localhost:7340/CourseMakerService.asmx" />
在我们添加的Conponent Class 构造中调用服务器链接地址

1 public Component1( string serviceUrl)
2 {
3 if (serviceUrl. Equals( "UpdateServiceAddress" ))
4 base .Url = ConfigurationManager . AppSettings["UpdateServiceAddress" ];
5 else
6 base .Url = ConfigurationManager . AppSettings["ServiceAddress" ];
7 }

然后当我们想要调用WebService中的方法时,只需要在Component1类中写. 如果我的调用方式

1 [ WebServiceBinding(Namespace = "http://tempuri.org/" )]
2 public class OffLineLearingClient : SoapHttpClientProtocol
3 {
4 public OffLineLearingClient( string serviceUrl)
5 {
6 if (serviceUrl. Equals( "UpdateServiceAddress" ))
7 base .Url = ConfigurationManager . AppSettings["UpdateServiceAddress" ];
8 else
9 base .Url = ConfigurationManager . AppSettings["ServiceAddress" ];
10 }
11 public OffLineLearingClient()
12 {
13 base .Url = ConfigurationManager . AppSettings["ServiceAddress" ];
14 }
15 [ SoapDocumentMethod ]
16 public YHBJUser GetUser( YHBJUser user)
17 {
18 return base . Invoke("GetUser" , new object [] { user })[0 ] as YHBJUser ;
19 }
20
21 [ SoapDocumentMethod ]
22 public List < YHBJClass> GetTrainings11( string userId)
23 {
24 return base . Invoke("GetTrainings11" , new object [] { userId })[0 ] as List <YHBJClass > ;
25 }

这样我们就可以动态的实现如果调用WebService了.
NET动态调用WebService的更多相关文章
- Atitit 动态调用webservice与客户端代理方式调用
Atitit 动态调用webservice与客户端代理方式调用 方式1: 使用call.invoke 直接调用WSDL,缺点:麻烦,不推荐--特别是JAVA调用.NET的WS时,会有不少的问题需要解 ...
- 动态调用WebService(C#) (非常实用)
通常我们在程序中需要调用WebService时,都是通过“添加Web引用”,让VS.NET环境来为我们生成服务代理,然后调用对应的Web服务.这样是使工作简单了,但是却和提供Web服务的URL.方法名 ...
- 动态调用webservice(部分转载)
动态调用webservice,做个笔记: public class WSHelper { /// < summary> /// 动态调用web服务 /// < /summary> ...
- C# 动态调用webservice
最近项目中,用到动态调用webservice的内容,此处记录下来,留着以后COPY(我们只需要在XML,config文件,或者数据库中配置webservice连接地址和方法名即可使用): using ...
- 动态调用webservice及WCF服务
动态调用web服务,该方法只针对Web service, WCF的服务不行,如果是WCF的就通过工具直接生产代理类,把代理类配置到调用的项目中,通过配置客户端的终结点动态的取实现: 通过Svcutil ...
- C# .NET 动态调用webservice的三种方式
转载自 百度文库 http://wenku.baidu.com/link?url=Q2q50wohf5W6UX44zqotXFEe_XOMaib4UtI3BigaNwipOHKNETloMF4ax4W ...
- WebService – 2.动态调用WebService
在本节课程中,将演示如何通过程序动态添加.调用.编译.执行WebService并返回结果. WebService动态调用示意图 WebService相关知识 代码文档对象模型CodeDom的使用 编程 ...
- 用C#通过反射实现动态调用WebService 告别Web引用
我们都知道,调用WebService可以在工程中对WebService地址进行WEB引用,但是这确实很不方便.我想能够利用配置文件灵活调用WebService.如何实现呢? 用C#通过反射实现动态调用 ...
- 动态调用Webservice 支持Soapheader身份验证(转)
封装的WebserviceHelp类: using System; using System.CodeDom; using System.CodeDom.Compiler; using System. ...
- [转]Net 下采用GET/POST/SOAP方式动态调用WebService C#实现
本文转自:http://www.cnblogs.com/splendidme/archive/2011/10/05/2199501.html 一直以来,我们都为动态调用WebService方法而烦恼. ...
随机推荐
- RH033读书笔记(4)-Lab 5 File Permissions
Lab 5 File Permissions Sequence 1: Determining File Permissions 1. What is the symbolic representati ...
- 应用层协议系列(两)——HTTPserver之http协议分析
上一篇文章<抄nginx Httpserver设计与实现(一)--多进程和多通道IO现>中实现了一个仿照nginx的支持高并发的server.但仅仅是实现了port监听和数据接收.并没有实 ...
- Java SE学习之数组——匿名数组和不规则数组
本文是学习网络上的文章时的总结以及自己的一点实践.感谢大家无私的分享. 近期偶然遇到了数组的问题,学习了匿名数组和不规则数组. 匿名数组适用于仅仅使用一次的情况:不规则数组适用是每行数据总数不确定的情 ...
- uitableView 选择跳过后, 跳回 颜色变化 问题
今天遇到这个问题 谁也因此没有满足这方面的需求 今天会见 网上办理登机手续 未找到 好 我只能说自己的问题 但 幸好,kai哥 就攻克了 ! 就是在- (void)tableView:(UITabl ...
- Velocity脚本新手教程
从网络下的数据汇编 一.Velocity简介 Velocity它是Apache该公司的开源产品,它是一套基于Java语言模板引擎,背景可以非常灵活的数据与模板文件一起反对.他直言不讳地说:,人使用模板 ...
- js运动动画
原文:js运动动画 今天简单的学了一下js运动动画,再此感谢慕课网的这位老师http://www.imooc.com/view/167,讲的很不错. 下面是我整理出来的结果. 知识点一:速度动画. 1 ...
- Oracle Applications Multiple Organizations Access Control for Custom Code
档 ID 420787.1 White Paper Oracle Applications Multiple Organizations Access Control for Custom Code ...
- 【Android基础】点击Back键退出应用程序
//第一种方法(弹出对话框) @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-genera ...
- 使用jQuery和css3实现了仿淘宝ued博客左边的菜单切换动画
今天看到淘宝ued博客的左侧导航菜单的动画好,要使用jQuery和css3我做一个简单的示例,主要用途是实现jQuery 事件和css3 transition属性. 个元素来实现鼠标滑动到某个导航的背 ...
- tomcatport占用,如何识别和kill
开始-执行-cmd,进netstat -ano你可以看到整个port入住. 增加要想知道谁占用了我们的port8080,输入下面命令 C:\Documents and Settings\Adminis ...