本文原创,如需转载,请标明源地址,谢谢合作!http://blog.csdn.net/sue_1989/article/details/6597078

本文的编写IDE为VSTS2008和.NET Framework3.5 ,其他版本的VS或.Net Framework类似

本示例程序说明:从WinForm程序调用本机的WebServices的方法,返回两个数的和

1. 新建>>项目>>ASP.NET Web 服务应用程序,命名为 WebServiceTest,OK

2.打开Service1.asmx.cs,   添加方法 Add(),请注意方法前的 [WebMethod(Description="Add")]  为必须。

  1. namespace WebServiceTest
  2. {
  3. /// <summary>
  4. /// Service1 的摘要说明
  5. /// </summary>
  6. [WebService(Namespace = "http://tempuri.org/")]
  7. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
  8. [ToolboxItem(false)]
  9. // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
  10. // [System.Web.Script.Services.ScriptService]
  11. public class Service1 : System.Web.Services.WebService
  12. {
  13. [WebMethod]
  14. public string HelloWorld()
  15. {
  16. return "Hello World"+"world hello";
  17. }
  18. [WebMethod(Description="Add")]
  19. public int add(int x,int y)
  20. {
  21. return x + y;
  22. }
  23. }
  24. }

3.启动程序,浏览器器会自动启动,如下图表示WebService正常启动

注意浏览器的URL,这个将在后面的应用程序中引用时作为地址,很重要

4. 点击Add, 进入调用, 分别输入参数x,y的值,点击调用,浏览器会跳转,显示如下的XML(一般情况下会在浏览器中显示XML文本)

5.以上步骤表示我们建立的WebService可以正常使用,现在可以不停止此程序的调试,即暂时不关闭此服务的运行,暂时放一边不管它

6. 另打开一个VS,新建>>项目>>Windows窗体应用程序,命名为WindowsFormsApplicationTest>>OK

7.添加控件,三个TextBox, 两个Lable,一个Button

8.引用刚才建立的WebService到这个项目

右键点击解决方案管理器中的项目,选择“添加服务引用”,弹出如下对话框

输入刚才的WebServices的地址,点击前往,添加Service1Soap, 把 命名空间改为 WebServiceTest,确定,就会生成如下的引用,现在就可以使用这个WebService了

结果:

9.添加Button的事件处理

  1. namespace WindowsFormsApplicationTest
  2. {
  3. public partial class mainForm : Form
  4. {
  5. public mainForm()
  6. {
  7. InitializeComponent();
  8. }
  9. private void btnPlus_Click(object sender, EventArgs e)
  10. {
  11. int var1=int.Parse(this.textBox1.Text);
  12. int var2=int.Parse(this.textBox2.Text);
  13. WebServiceTest.Service1SoapClient ws = new WebServiceTest.Service1SoapClient();
  14. int result=ws.add(var1, var2);
  15. this.textBox3.Text = result.ToString();
  16. }
  17. }
  18. }

上面的处理中用到的string和int型的互转这里就不解释了

关键方法是WebServiceTest.Service1SoapClient ws = new WebServiceTest.Service1SoapClient()

10. 运行

输入数据,点击就OK了

其他的WebService方法大家也可以自己试试。

如果遇到报错说服务没有或异常,是因为WebService的服务没有启动,在第一个程序中其中就行。

一个简单的winform程序调用webservices的更多相关文章

  1. C#之VS2010ASP.NET页面调用Web Service和winform程序调用Web Service

    一:用ASP.NET调用Web Service 打开VS2010,打开“文件-新建-网站”,选择“ASP.NET网站” 选好存储位置,语言后点击确定,进入默认页面.然后先添加Web引用,把WebSer ...

  2. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

  3. 编写一个简单的C++程序

    编写一个简单的C++程序 每个C++程序都包含一个或多个函数(function),其中一个必须命名为main.操作系统通过调用main来运行C++程序.下面是一个非常简单的main函数,它什么也不干, ...

  4. 如何创建一个简单的struts2程序

    如何创建一个简单的Struts2程序 “计应134(实验班) 凌豪” 1.创建一个新的Web项目test(File->new->Web Project) 2.Struts2框架的核心配置文 ...

  5. 用C语言编写一个简单的词法分析程序

    问题描述: 用C或C++语言编写一个简单的词法分析程序,扫描C语言小子集的源程序,根据给定的词法规则,识别单词,填写相应的表.如果产生词法错误,则显示错误信息.位置,并试图从错误中恢复.简单的恢复方法 ...

  6. 第一周:通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的

    姓名:吕松鸿 学号:20135229 ( *原创作品转载请注明出处*) ( 学习课程:<Linux内核分析>MOOC课程http://mooc.study.163.com/course/U ...

  7. 实验---反汇编一个简单的C程序(杨光)

    反汇编一个简单的C程序 攥写人:杨光  学号:20135233 ( *原创作品转载请注明出处*) ( 学习课程:<Linux内核分析>MOOC课程http://mooc.study.163 ...

  8. (原创)如何使用boost.asio写一个简单的通信程序(一)

    boost.asio相信很多人听说过,作为一个跨平台的通信库,它的性能是很出色的,然而它却谈不上好用,里面有很多地方稍不注意就会出错,要正确的用好asio还是需要花一番精力去学习和实践的,本文将通过介 ...

  9. [WCF学习笔记] 我的WCF之旅(1):创建一个简单的WCF程序

    近日学习WCF,找了很多资料,终于找到了Artech这个不错的系列.希望能从中有所收获. 本文用于记录在学习和实践WCF过程中遇到的各种基础问题以及解决方法,以供日后回顾翻阅.可能这些问题都很基础,可 ...

随机推荐

  1. Linux性能优化从入门到实战:17 网络篇:网络基础

    网络模型 为了解决网络互联中异构设备的兼容性问题,并解耦复杂的网络包处理流程,国际标准化组织制定了开放式系统互联通信参考模型(Open System Interconnection Reference ...

  2. OGG replicat复制进程的拆分

    参考资料: 1.https://blog.csdn.net/datingting1/article/details/79583690

  3. mvn 打包排除test

    mvn clean package compile -Dmaven.test.skip=true

  4. php 弱类型比较

    1.按数字值比较 1.1数字(整数.浮点数.科学计数法.各种进制数)或纯十进制数字字符串. <?php $a = 100; //整数 $b = "100"; //十进制数字符 ...

  5. 剖析 Vue.js 内部运行机制 (1)

    1. new Vue() 之后. Vue 会调用 _init 函数进行初始化,也就是这里的 init 过程,它会初始化生命周 期.事件. props. methods. data. computed ...

  6. HTML5 中list 和datalist实例

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  7. ORM多表查询下

    一.多表查询 1.基于双下划线的跨表查询 Django 还提供了一种直观而高效的方式在查询(lookups)中表示关联关系,它能自动确认 SQL JOIN 联系.要做跨关系查询,就使用两个下划线来链接 ...

  8. Map.Entry的由来和使用

    首先,回忆和练习一下HashMap的遍历 package Exercise.exercise; import java.util.HashMap; import java.util.Iterator; ...

  9. 检查电脑链接的网络是否支持ipv6

    测试方法一:在浏览器地址栏输入网址“http://test-ipv6.com/”,在页面会给出您的ipv6网络测试结果 测试方法二:在浏览器地址栏输入网址“http://ipv6.jmu.edu.cn ...

  10. redis学习 --Sorted Set

    一.概述: Sorted Set(有序集合)和Set类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中.它们之间的主要差别是Sorted Set中的每一个成员都会有一个分数(sc ...