1.创建Webservice服务应用程序

方式一:将VS2010采用的默认框架,改为使用框架.NET Framework2.0\3.0\3.5,这时新建"项目"or新建"网站"就可以找到需要的"ASP.NET WebService模板"来建立WebService了。

方式二:创建空的web应用程序项目,新建项选择Web服务。

2.添加WebService代码。代码使用方式和功能已含在代码注释中

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services; namespace WebServiceByEmptyWeb
{
/// <summary>
/// WebService1 的摘要说明
/// </summary>
[WebService(Namespace = "HwSoft")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{ //[WebMethod]
//public string HelloWorld()
//{
// return "Hello World";
//} //只有加WebMethod特性的方法才能被引用
[WebMethod(Description = "求和的方法")]
public double addition(double number1,double number2)
{
return number1 + number2;
} [WebMethod(Description="求差的方法")]
public double subtraction(double number1, double number2)
{
return number1 - number2;
} [WebMethod(Description=("求积的方法"))]
public double multiplication(double number1, double number2)
{
return number1 * number2;
} [WebMethod(Description="求商的方法")]
public double division(double number1, double number2)
{
if (number2 != )
{
return number1 / number2;
}
else
return -;
}
}
}

3.用web测试webservice
创建web网站项目后添加【添加Web引用】。注意Web引用名,调用WebService使用

web网站测试代码:

前台:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="Num1" runat="server"></asp:TextBox>
<asp:DropDownList ID="ddlOperator" runat="server">
<asp:ListItem Text="+" Value="add"></asp:ListItem>
<asp:ListItem Text="-" Value="sub"></asp:ListItem>
<asp:ListItem Text="*" Value="mul"></asp:ListItem>
<asp:ListItem Text="/" Value="div"></asp:ListItem>
</asp:DropDownList> <asp:TextBox ID="Num2" runat="server"></asp:TextBox>
<span id="E" runat="server"></span>
<asp:TextBox ID="Result" runat="server"></asp:TextBox>
</div>
</form>
</body>
</html>

C#后台代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//动态创建按钮
Button btn = new Button();
btn.Text = "=";
btn.Width = ;
btn.Click += new EventHandler(btn_Click);
E.Controls.Add(btn);
} protected void btn_Click(object sender, EventArgs e)
{
if (Num1.Text != "" && Num2.Text != "")
{
localhost.WebService1 webservice = new localhost.WebService1();
string operate = ddlOperator.SelectedValue;
double number1 = double.Parse(Num1.Text );
double number2 = double.Parse(Num2.Text);
switch (operate)
{
case "add":
Result.Text = webservice.addition(number1,number2).ToString("F2");
break;
case "sub":
Result.Text =webservice.subtraction(number1,number2).ToString("F2");
break;
case "mul":
Result.Text = webservice.multiplication(number1,number2).ToString("F2");
break;
case "div":
Result.Text = webservice.division(number1,number2).ToString("F2");
break;
}
}
}
}

4.添加其他类型的Webservice

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data;
using System.ComponentModel; namespace WebServiceByEmptyWeb
{
/// <summary>
/// OtherTypeWebServices 的摘要说明
/// </summary>
[WebService(Namespace = "HwSoft")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class OtherTypeWebServices : System.Web.Services.WebService
{
public OtherTypeWebServices()
{
//CODEGEN: 该调用是 ASP.NET Web 服务设计器所必需的
InitializeComponent();
} //Web 服务设计器所必需的
private IContainer components = null; /// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
} /// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose(bool disposing)
{
if (disposing && components != null)
{
components.Dispose();
}
base.Dispose(disposing);
} [WebMethod]
public string HelloWorld()
{
return "Hello World";
} [WebMethod(Description="返回整型数据")]
public int GetInt()
{
return ;
} [WebMethod(Description="返回布尔数据")]
public bool GetBool()
{
return true;
} [WebMethod(Description="返回实体类")]
public Student GetStudent()
{
Student stu = new Student();
stu.Name = "张三";
stu.Age = ;
stu.Sex = true;
return stu;
} [WebMethod(Description="返回DataSet")]
public DataSet GetDataSet()
{
DataSet ds = new DataSet();
return ds;
} }
}

上述中含有的Student类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; namespace WebServiceByEmptyWeb
{
/*
* 为避免Framework1.1中返回实体类报错“请求格式无法识别。”
* 要在Web.Config文件中<system.web>添加以下内容:
* <webServices>
<protocols>
<add name="HttpPost" />
<add name="HttpGet" />
</protocols>
</webServices>
*/ /// <summary>
/// 学生基本信息类
/// 可序列化(webservice才能调用)
/// </summary>
[Serializable]
public class Student
{
public Student()
{
} private string name;
/// <summary>
/// 姓名
/// </summary>
public string Name
{
get { return name; }
set { name = value; }
} private bool sex;
/// <summary>
/// 性别(布尔变量真为女,假为男)
/// </summary>
public bool Sex
{
get { return sex; }
set { sex = value; }
} private int age;
/// <summary>
/// 年龄
/// </summary>
public int Age
{
get { return age; }
set { age = value; }
} }
}

5.WinForm测试4中建立的Webservice

在WinForm项目中【添加服务引用】- 【高级】 -【添加web引用】 界面与添加Web程序一致

winForm程序:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; namespace OtherTypeWebServiecTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} //类
private void button1_Click(object sender, EventArgs e)
{
localhost.OtherTypeWebServices webservice = new localhost.OtherTypeWebServices();
localhost.Student stu = webservice.GetStudent();
txbName.Text = stu.Name;
txbSex.Text = stu.Sex==false?"男":"女";
txbAge.Text = stu.Age.ToString(); } //DataTable
private void button2_Click(object sender, EventArgs e)
{
localhost.OtherTypeWebServices webService = new localhost.OtherTypeWebServices();
txbOther.Text = webService.GetDataSet().Tables.Count.ToString();
} //Int
private void button3_Click(object sender, EventArgs e)
{
localhost.OtherTypeWebServices webService = new localhost.OtherTypeWebServices();
txbOther.Text = webService.GetInt().ToString();
} //Bool
private void button4_Click(object sender, EventArgs e)
{
localhost.OtherTypeWebServices webService = new localhost.OtherTypeWebServices();
txbOther.Text = webService.GetBool().ToString();
} //Hello World
private void button5_Click(object sender, EventArgs e)
{
localhost.OtherTypeWebServices webService = new localhost.OtherTypeWebServices();
txbOther.Text = webService.HelloWorld();
}
}
}

测试结果显示:

WebService简单使用的更多相关文章

  1. 主题:Java WebService 简单实例

    链接地址:主题:Java WebService 简单实例    http://www.iteye.com/topic/1135747 前言:朋友们开始以下教程前,请先看第五大点的注意事项,以避免不必要 ...

  2. WebService 简单安全验证

    原文:WebService 简单安全验证 最近新接了一个需要调用第三方WebService的项目,看到这个第三方WebService被调用的时候,需要授权用户名和密码,于是自己也想对WebServic ...

  3. 使用 CXF 做 webservice 简单例子(转载)

    使用 CXF 做 webservice 简单例子     Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构.它允许创建高性能和可扩展的服务,您可以将这 ...

  4. Java使用MyEclipse构建webService简单案例

     什么是WebServices? 它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web应用程序分支,是自包含.自描述.模块化的应用,可以发布.定位.通过web ...

  5. .net实现webservice简单实例分享

    原理:WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互.作用:主要用 ...

  6. 使用 CXF 做 webservice 简单例子

    Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构.它允许创建高性能和可扩展的服务,您可以将这样的服务部署在 Tomcat 和基于 Spring 的轻量 ...

  7. .net请求Webservice简单实现天气预报功能

    很久没有接触Webservice的知识,今天稍微复习了一下关于webservice,简单做了一个天气预报的功能,虽然界面丑的厉害,但功能算是实现了,以下是效果展示. 这东西没什么难点,只是天气预报的功 ...

  8. Android调用天气预报的WebService简单例子

    下面例子改自网上例子:http://express.ruanko.com/ruanko-express_34/technologyexchange5.html 不过网上这个例子有些没有说明,有些情况不 ...

  9. webservice简单总结

    一:webservice定义 webservice是一种基于xml,xsd封装格式,通过http协议通信的一种服务,支持跨平台.跨语言的 远程调用. 二:webservice优点 1:跨平台,无论是w ...

  10. Webservice简单概念

    一.序言 大家或多或少都听过 WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成 分.但是不得不承认的是W ...

随机推荐

  1. SSI指令教程

    一:概述 SSI:服务器端嵌入或者叫服务器端包含,是Server Side Include的简写.SSI技术通过在文档中加入SSI指令,让服务器端在输出文档之前解析SSI指令,并把解析完的结果和文档一 ...

  2. Markdown 测试

    量化派业务参考代码 测试二级标题 如果 merchant_id 是外部白条,则执行相关逻辑 if(order.getMerchantId() == Constants.BaitiaoMerchant. ...

  3. N.O.W,O.R,N.E.V.E.R--12days to LNOI2015

    双向链表 单调队列,双端队列 单调栈 堆 带权并查集 hash 表 双hash 树状数组 线段树合并 平衡树 Treap 随机平衡二叉树 Scapegoat Tree 替罪羊树 朝鲜树 块状数组,块状 ...

  4. 在VS2008.Net下使用WPF开发Web应用程序

    原文地址:http://hankjin.blog.163.com/blog/static/33731937200922353623434/ 胖客户端的好处是可以轻易的实现绚丽的效果, 而瘦客户端则需要 ...

  5. BZOJ 1035 Risk

    Description 经过连续若干年的推广,Risk这个游戏已经风靡全国,成为大众喜闻乐见的重要娱乐方式.Risk这个游戏可以理解为一种简易的策略游戏,游戏者的目的是占领所有的土地.由于游戏规则的规 ...

  6. 【Java】在Eclipse中使用JUnit4进行单元测试(初级篇)

    本文绝大部分内容引自这篇文章: http://www.devx.com/Java/Article/31983/0/page/1 我们在编写大型程序的时候,需要写成千上万个方法或函数,这些函数的功能可能 ...

  7. STM32F10x 学习笔记6(USART实现串口通讯 2)

    这次讲讲利用串口收发中断来进行串口通讯.STM32 上为每个串口分配了一个中断.也就是说无论是发送完成还是收到数据或是数据溢出都产生同一个中断.程序需在中断处理函数中读取状态寄存器(USART_SR) ...

  8. Delphi 指针大全(光看不练是学不会的)

    大家都认为,C语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上.因此,说指针是C语言的灵魂,一点都不为过.同时,这种说法也让很多人产生误解,似乎只有C语言的指针才能算指针.Basic不支 ...

  9. POJ 2112 Optimal Milking(Floyd+多重匹配+二分枚举)

    题意:有K台挤奶机,C头奶牛,每个挤奶机每天只能为M头奶牛服务,下面给的K+C的矩阵,是形容相互之间的距离,求出来走最远的那头奶牛要走多远   输入数据: 第一行三个数 K, C, M  接下来是   ...

  10. (转载)PHP去掉转义后字符串中的反斜杠\函数stripslashes

    (转载)http://www.beijibear.com/index.php?aid=182 addslashes()函数主要是在字符串中添加反斜杠对特殊字符进行转义,stripslashes()则是 ...