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

 

转载于:https://www.cnblogs.com/ZXdeveloper/p/3729417.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WCF WebSocket是WCF 4.5中新增的一个功能,它支持在WCF中使用WebSocket协议进行通信。WebSocket是一种全双工通信协议,可以在客户端和服务器之间建立持久性的连接,实现实时的双向通信。\[1\] 然而,需要注意的是,WCF WebSocket只在Windows 8及以上的系统中支持,对于Windows 7等旧版本的系统则不支持。这是因为WCF WebSocket依赖于System.Net.WebSocket类,而该类也只在Windows 8及以上的系统中可用。\[2\] 在WCF中,可以使用NetHttpBinding和NetHttpsBinding这两个标准绑定来支持WebSocket传输。这两个绑定允许在标准的HTTP端口80和443上进行WebSocket通信,从而可以通过Web中介进行跨网络的通信。\[3\] 总结起来,WCF WebSocket是WCF 4.5中新增的功能,它支持使用WebSocket协议进行实时的双向通信。然而,需要注意的是,WCF WebSocket只在Windows 8及以上的系统中支持,并且可以使用NetHttpBinding和NetHttpsBinding这两个标准绑定来进行WebSocket通信。 #### 引用[.reference_title] - *1* *2* [在WCF中使用websocket](https://blog.csdn.net/weixin_34205826/article/details/85568070)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [WCF websocket](https://blog.csdn.net/weixin_30699741/article/details/96370576)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值