码迷,mamicode.com
首页 > 其他好文 > 详细

菜鸟级别的WCF入门学习

时间:2014-05-16 04:35:29      阅读:313      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   c   java   

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

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

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

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

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

删除或注释掉Cal里的

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

ICal里的

 // void DoWork();

因为用不到以上的内容

在ICal里写入以下代码

bubuko.com,布布扣
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);
    }
bubuko.com,布布扣

 

在Cal里写入

bubuko.com,布布扣
 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;
        }
    }
bubuko.com,布布扣

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

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

bubuko.com,布布扣

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

bubuko.com,布布扣

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

bubuko.com,布布扣

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

bubuko.com,布布扣

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

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

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

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

bubuko.com,布布扣

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

前台代码如下

bubuko.com,布布扣
    <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>
bubuko.com,布布扣

后台代码如下

bubuko.com,布布扣
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);
        }
    }
}
bubuko.com,布布扣

按F5,运行

bubuko.com,布布扣

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

bubuko.com,布布扣

 

注:

在代码中需要引用

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

在代码中需要注意的是

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

 

菜鸟级别的WCF入门学习,布布扣,bubuko.com

菜鸟级别的WCF入门学习

标签:style   blog   class   code   c   java   

原文地址:http://www.cnblogs.com/ZXdeveloper/p/3729417.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!