这两天学习WCF,看了MSDN上的入门教程,和查找了一些网上给的例子,简单的实现了一下,感觉应该很适合我这种菜鸟级的选手看了。

1、新建一个项目--WCF--WCF服务应用程序

用的是MSDN上的加减乘除,所以在名称部分写的是Calculator

删除自带的Service1和IService1两个文件,右键添加--新建项

由于左侧的选项里没有WCF,所以直接搜索WCF,添加WCF服务,名字为Cal

删除或注释掉Cal里的

//public void DoWork()
//{
//}

ICal里的

 // void DoWork();

因为用不到以上的内容

在ICal里写入以下代码

public interface ICal
{
[OperationContract]
double Add(double n1, double n2);
[OperationContract]
double Subtract(double n1, double n2);
[OperationContract]
double Multiply(double n1, double n2);
[OperationContract]
double Divide(double n1, double n2);
}

在Cal里写入

 public class Cal : ICal
{
public double Add(double n1,double n2)
{
double result = n1 + n2;
return result;
}
public double Subtract(double n1,double n2)
{
double result = n1 - n2;
return result;
}
public double Multiply(double n1,double n2)
{
double result = n1 * n2;
return result;
}
public double Divide(double n1,double n2)
{
double result = n1 / n2;
return result;
}
}

以上两部分内容,像我这种菜鸟都能写出来,相信大家也能看明白。就不写注释了

按F5运行,会出现以下界面

双击Add(),进行测试,当然,四个都可以测试

在n1处输入一个值,n2处输入一个值,点击调用,此处用简单的1+1来演示,出现值2,则证明成功了。

右键Cal.svc文件,选择在浏览器中查看

此网页尽量不要关闭,因为本文只在于测试,所以不在IIS上部署。如果在此页面没有打开的情况下,运行后面的客户端出错的话,可以尝试运行此页面

2、新建一个ASP.net项目,此处命名为WebCalculator

然后右键引用--添加服务引用

在地址部分输入上一张图片中划线的地址,然后点击转到,在服务列表里会有Cal的出现,点击确定即可

新建一个空白WEB窗体WebTest.aspx

前台代码如下

    <div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<br />
<asp:Button ID="BtnAdd" runat="server" Text="加" OnClick="BtnAdd_Click" />
<asp:Button ID="BtnSub" runat="server" Text="减" OnClick="BtnSub_Click" />
<asp:Button ID="BtnMul" runat="server" Text="乘" OnClick="BtnMul_Click" />
<asp:Button ID="Btndiv" runat="server" Text="除" OnClick="Btndiv_Click" />
</div>

后台代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebCalculator.ServiceReference1; namespace WebCalculator
{
public partial class WebTest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ } protected void BtnAdd_Click(object sender, EventArgs e)
{
CalClient cal = new CalClient();
double result = cal.Add(double.Parse(TextBox1.Text.ToString()), double.Parse(TextBox2.Text.ToString()));
Response.Write(result);
} protected void BtnSub_Click(object sender, EventArgs e)
{
CalClient cal = new CalClient();
double result = cal.Subtract(double.Parse(TextBox1.Text.ToString()), double.Parse(TextBox2.Text.ToString()));
Response.Write(result);
} protected void BtnMul_Click(object sender, EventArgs e)
{
CalClient cal = new CalClient();
double result = cal.Multiply(double.Parse(TextBox1.Text.ToString()), double.Parse(TextBox2.Text.ToString()));
Response.Write(result);
} protected void Btndiv_Click(object sender, EventArgs e)
{
CalClient cal = new CalClient();
double result = cal.Divide(double.Parse(TextBox1.Text.ToString()), double.Parse(TextBox2.Text.ToString()));
Response.Write(result);
}
}
}

按F5,运行

在textbox中随意输入两个值,进行测试

注:

在代码中需要引用

using WebCalculator.ServiceReference1;
WebCalculator为项目的名字,
ServiceReference1为引用的命名空间

在代码中需要注意的是

CalClient 这类你会发现根本就不是用户自己写的,而是系统生成的,从命名上来看就能明白Cal是服务的名,Client是客服端,所以我们在写其他的代码的时候,就可以很容易写这个类的名字。

菜鸟级别的WCF入门学习的更多相关文章

  1. WCF入门学习2-控制台做为宿主

    Step1.创建一个WCF类库和一个控制台程序. Step2.引用WCF项目. Step3.添加这两个引用. //本段代码出处 无废话WCF入门教程系列 Uri baseAddress = new U ...

  2. 年前辞职-WCF入门学习(4)

    前言 上一篇的学习中碰到一个问题,用地址http://localhost:8080/mex 访问元数据的时候一直提示400 bad request 错误,因为时间太晚了,查了好几遍代码,也没有发现问题 ...

  3. 年前辞职-WCF入门学习(5)

    前言 第五集比较简单,视频也只有7分多钟,但是用处还是挺大的.下面我会介绍. 本来想第六集一起介绍的,后来发现第六集内容比较多,有半个多小时,就不一起了.网站规定6小时内只能发布一篇文章到首页,,那我 ...

  4. 年前辞职-WCF入门学习(3)

    前言 [2了,刚写好的,手贱,点了删除,还真TMD的删除了,只好重写] 今天周六,去同事家聚了一个餐,感觉各种豪华. 废话不多说,前两集大致介绍了一下什么是WCF以及和WCF相关的WebService ...

  5. 年前辞职-WCF入门学习(1,2)

    前言 周一的时候辞职了,离开了从12年毕业后8月份开始一直到现在的公司. 辞职之后当然是玩.玩了若干天的游戏,真的是没日没夜啊,但是玩的太坑,怒删游戏.话说上次玩还是在14年7月份.下次还是过年回家再 ...

  6. WCF入门学习3-配置文件与部署iis

    配置文件设置 --------------------------------------------------- 创建的时候都会有个配置文件,其实有一个WCF配置编辑器,右键就可以点出来设置. 需 ...

  7. WCF入门学习1-最简单的一次通信

    跟着msdn的教程试了一下wcf,真心好用 1.先创建一个wcf服务库,是服务类库,远程的lib 2.全部按照默认设置,不修改.然后点发布,会出现一个wcf测试客户端,可以看有没有发布成功. 3.ms ...

  8. WCF入门教程(四)通过Host代码方式来承载服务 一个WCF使用TCP协议进行通协的例子 jquery ajax调用WCF,采用System.ServiceModel.WebHttpBinding System.ServiceModel.WSHttpBinding协议 学习WCF笔记之二 无废话WCF入门教程一[什么是WCF]

    WCF入门教程(四)通过Host代码方式来承载服务 Posted on 2014-05-15 13:03 停留的风 阅读(7681) 评论(0) 编辑 收藏 WCF入门教程(四)通过Host代码方式来 ...

  9. 学习WCF入门的第一个实例

    一.概述 WCF说白了就是一个基于终结点的通信手段!就是Service端提供一定的功能实现,然后暴露出一个或多个终结点,Client端调用Service端的功能(可以理解为调用一个函数),那么Clie ...

随机推荐

  1. 数据库软件dbForge Studio for MySQL更新至v.6.1

    本文转自:慧都控件网 说到MariaDB,这个数据库算是MySQL的一个分支.现在非常的流行,很多地方都能看到它的身影.MariaDB作为一种新的数据库管理系统,在短时间内获得如此高的关注度.这也是D ...

  2. angular下拉

    <div class="form-group col-sm-4"> <label class="col-sm-5 control-label" ...

  3. <<你最喜欢做什么--兴趣问题清单>>总结

    二.测试作业 你最喜欢做什么--兴趣问题清单 •根据迄今为止已有的经历,你真正喜欢从事的工作是什么?   目前还没有接触工作,就工作而言,凭自己所学的本领和技术去工作,我认为我会喜欢我所做的工作 •休 ...

  4. UIWebView和Js交互

    在日常的ios项目开发中,我们经常会在原生应用中嵌入web页面,通常我们只是进行一个展示,没有其它的一些功能.但是也有一些项目中需要web页面中的html和native进行交互.但是ios sdk 并 ...

  5. samba server install

    要求: create vnc service for win7 access it via vnc viewer. 1TB disk for this Centos PC is used as Sam ...

  6. 纯练手设置ip地址脚本

    #!/bin/bash IFO() { read -p "Configure $line Network card ( 'yes'or'no' )?" CDN </dev/t ...

  7. printf(""); 输出小题目

    #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>  int main(){ int i=43; printf("%d\n&q ...

  8. MySQL 升级详细步骤 (包括 Percona)

    MySQL 升级步骤 MySQL 5.1.72 升级到 MySQL 5.5.36 鉴于我在升级的时候遇到的麻烦问题,我觉得有必要把一些细节说清楚,免得引起误解了.感觉官方文档上的升级步骤写的比较简单, ...

  9. Sql Server tempdb原理-缓存机制解析实践

    Tempdb就像Sqlserver的临时仓库,各式各样的对象,数据在里面进行频繁计算,操作.大量的操作使得tempdb可能面临很大压力,tempdb中缓存的设计就是为了缓解这些压力.这次就为大家介绍下 ...

  10. MySQL2:四种MySQL存储引擎

    前言 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建.查询.更新和删除数据.不同的存储引擎提供不同的存储机制.索引技巧.锁定水平等功能,使用不同的存储引擎,还可以 ...