首页 > 代码库 > 菜鸟级别的WCF入门学习
菜鸟级别的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是客服端,所以我们在写其他的代码的时候,就可以很容易写这个类的名字。