菜鸟级别的WCF入门学习
这两天学习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入门学习的更多相关文章
- WCF入门学习2-控制台做为宿主
Step1.创建一个WCF类库和一个控制台程序. Step2.引用WCF项目. Step3.添加这两个引用. //本段代码出处 无废话WCF入门教程系列 Uri baseAddress = new U ...
- 年前辞职-WCF入门学习(4)
前言 上一篇的学习中碰到一个问题,用地址http://localhost:8080/mex 访问元数据的时候一直提示400 bad request 错误,因为时间太晚了,查了好几遍代码,也没有发现问题 ...
- 年前辞职-WCF入门学习(5)
前言 第五集比较简单,视频也只有7分多钟,但是用处还是挺大的.下面我会介绍. 本来想第六集一起介绍的,后来发现第六集内容比较多,有半个多小时,就不一起了.网站规定6小时内只能发布一篇文章到首页,,那我 ...
- 年前辞职-WCF入门学习(3)
前言 [2了,刚写好的,手贱,点了删除,还真TMD的删除了,只好重写] 今天周六,去同事家聚了一个餐,感觉各种豪华. 废话不多说,前两集大致介绍了一下什么是WCF以及和WCF相关的WebService ...
- 年前辞职-WCF入门学习(1,2)
前言 周一的时候辞职了,离开了从12年毕业后8月份开始一直到现在的公司. 辞职之后当然是玩.玩了若干天的游戏,真的是没日没夜啊,但是玩的太坑,怒删游戏.话说上次玩还是在14年7月份.下次还是过年回家再 ...
- WCF入门学习3-配置文件与部署iis
配置文件设置 --------------------------------------------------- 创建的时候都会有个配置文件,其实有一个WCF配置编辑器,右键就可以点出来设置. 需 ...
- WCF入门学习1-最简单的一次通信
跟着msdn的教程试了一下wcf,真心好用 1.先创建一个wcf服务库,是服务类库,远程的lib 2.全部按照默认设置,不修改.然后点发布,会出现一个wcf测试客户端,可以看有没有发布成功. 3.ms ...
- 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代码方式来 ...
- 学习WCF入门的第一个实例
一.概述 WCF说白了就是一个基于终结点的通信手段!就是Service端提供一定的功能实现,然后暴露出一个或多个终结点,Client端调用Service端的功能(可以理解为调用一个函数),那么Clie ...
随机推荐
- Codeforces #380 div2 D(729D) Sea Battle
D. Sea Battle time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- 基于OpenCv的人脸检测、识别系统学习制作笔记之三
1.在windows下编写人脸检测.识别系统.目前已完成:可利用摄像头提取图像,并将人脸检测出来,未进行识别. 2.在linux下进行编译在windows环境下已经能运行的代码. 为此进行了linux ...
- jQUery 1.9中被删除的API
jQuery1.9删除了一些在以前版本中已经过时的api,想要把那些不够安全的.缺乏效率的.用处不大的,以及带有误导的特性统统去掉.如果你想升级你的jquery版本,但又使用了如下被删除的api的话, ...
- Zookeeper会话
Zookeeper会话的状态可以分为以下四种:CONNECTING,CONNECTED,CLOSED和NOT_CONNECTED.下图展示了会话的状态和状态之间的转移过程: 会话的初始状态为NOT_C ...
- 直接代码POST数据调用WebService
ps:使用过webservice的童鞋大概都明白它是基于Soap协议交换数据的,同时Soap协议是对HTTP协议的扩展,其实我们就可以认为调用一个WEB服务就是通过http协议GET或POST数据的过 ...
- vs的dll引用机制
vs2012编译的时候,遇到一个问题就是项目A中运行时缺失dll的问题,项目A引用类库B,类库B引用了x,y等dll,编译A项目的时候,出现x没拷贝到bin 目录. 通过跟踪编译输出发现,x没拷贝的原 ...
- monodb C#接口封装
mongodb的C#封装,驱动是samus/mongodb-csharp 1.连接类 using MongoDB; using MongoDB.Linq; namespace DBModel { pu ...
- MongoDB for C#基础入门
笔者这里采用的是mongoDB官网推荐使用.net驱动: http://mongodb.github.io/mongo-csharp-driver/2.0/getting_started/quick_ ...
- IIS7 Application Pool Integrate Mode 和 Classic Mode 的区别
IIS7也用了好久了,关于Application Pool Integrate Mode 和 Classic Mode 究竟是什么也是懵懵懂懂,于是下决心去官网看了技术文档,终于恍然大悟,特来分享一下 ...
- CQRS\ES架构介绍
大家好,我叫汤雪华.我平时工作使用Java,业余时间喜欢用C#做点开源项目,如ENode, EQueue.我个人对DDD领域驱动设计.CQRS架构.事件溯源(Event Sourcing,简称ES). ...