.net WCF简单实例
最近看到网上招聘有许多都需要WCF技术的人员,我之前一直没接触过这个东西,以后工作中难免会遇到,所谓笨鸟先飞,于是我就一探究竟,便有了这边文章。由于是初学WCF没有深入研究其原理,只是写了一个demo留着以后,如果哪里写的不对希望大佬们能指出批评。个人认为WCF类似于Web Services(类似,肯定是有区别的,至于啥区别可以搜搜资料),不多说了,接下来看我简单实现的demo吧。
WCF服务用于两个不同项目中的调用,在这里我举例项目A调用WCF服务实现查询数据功能。
第一步:创建数据库,有点数据能展示出来就行。
Create database SalesLibrary --创建库Create table SalesVolume --创建表 (Id int,Num int,Product varchar(20) )
第二步:创建存储过程(可以没有此步,只是方便查询)。
create proc proc_ShowSalesVolume as select * from dbo.SalesVolume
第三步:创建一个WCF解决方案。
删除掉默认的Iservice1和Service1,创建自己的WCF服务名称。
第四步:编写WCF服务。
在IsalesVolumeOperation接口中写一个现实数据的方法ShowSalesVolume,一定要写上[OperationContract],如若不写外界无法对其进行调用。
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.Text; using System.Data;namespace WCFServices {// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“ISalesVolumeOperation”。[ServiceContract] // 服务合同 即提供服务的接口或类public interface ISalesVolumeOperation{ [OperationContract] //服务契约 即提供服务的实现方法 DataTable ShowSalesVolume();} }
在salesVolumeOperation中完善查询的的过程以及需要返回的参数。
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.Text; using System.Data; using System.Data.SqlClient;namespace WCFServices {// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“SalesVolumeOperation”。// 注意: 为了启动 WCF 测试客户端以测试此服务,请在解决方案资源管理器中选择 SalesVolumeOperation.svc 或 SalesVolumeOperation.svc.cs,然后开始调试。public class SalesVolumeOperation : ISalesVolumeOperation{public DataTable ShowSalesVolume(){DataSet ds = new DataSet();SqlConnection con = new SqlConnection("data source=.;initial catalog=SalesLibrary;user id=sa;password=sa123");string sql = "proc_ShowSalesVolume"; //存储过程名称using (SqlCommand cmd = new SqlCommand(sql, con)){con.Open();cmd.CommandType = CommandType.StoredProcedure;SqlDataAdapter da = new SqlDataAdapter(cmd);da.Fill(ds);}return ds.Tables[0];}} }
第五步:对WCF服务接口测试看看是否无误。
选中SalesVolumeOperation.svc右键在浏览器中查看,然后复制其路径。
打开测试工具SoapUI,将路径复制到initial WSDL 然后在路径结尾写上?wsdl。
接着开始进行测试:
看来WCF服务没有出现问题,那么我们就开始创建第二个程序来访问这个WCF服务。
第六步:创建ASP.NET Web 应用程序(和WCF不在同一个解决方案)。
选择空版本就行,然后右键服务-->添加服务引用-->高级-->添加web引用:
然后在解决方案中就可以看到:
第七步:实现调用WCF服务。
新建一个页面用于展示数据,名为ShowData.aspx
前台代码:
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title></title> </head> <body><form id="form1" runat="server"><div><asp:Repeater ID="Repeater1" runat="server"><ItemTemplate><%#Eval("Id") %><%#Eval("Num") %><%#Eval("Product") %><br /></ItemTemplate></asp:Repeater></div></form> </body> </html>
后台代码:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data;namespace WebUI {public partial class ShowData : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){if(!IsPostBack){GetSalesVolume();}}private void GetSalesVolume(){SalesVolumeOperation.SalesVolumeOperation sa = new SalesVolumeOperation.SalesVolumeOperation(); //实例化WCF接口DataTable dt = sa.ShowSalesVolume(); //接口下的方法List<SalesVolume> list = new List<SalesVolume>();SalesVolume sv;foreach(DataRow dr in dt.Rows){sv = new SalesVolume();sv.Id = Convert.ToInt32(dr["Id"]);sv.Num = Convert.ToInt32(dr["Num"]);sv.Product = dr["Product"].ToString();list.Add(sv); }Repeater1.DataSource = list;Repeater1.DataBind();}} public class SalesVolume{public int Id { get; set; }public int Num { get; set; }public string Product { get; set; }} }
最后页面上的展示结果:
好了,到这里就完事儿了,哪里写的不对希望大家指正~
转载于:https://www.cnblogs.com/swjian/p/8126202.html
.net WCF简单实例相关推荐
- 手把手wcf简单实例
WCF是微软为构建面向服务的应用程序所提供的统一编程模型. 下面通过一个简单的服务示例来认识WCF 1.新建项目,名称 XfServer,解决方案名称 XfStudy,模板选择类库,选择.NET Fr ...
- Silverlight+WCF 新手实例 象棋 主界面-实时聊天区(二十五)
在线演示地址:Silverlight+WCF 新手实例 象棋 在线演示 演示已更新到此节介绍:Silverlight+WCF 新手实例 象棋 介绍III(二十三) 本节连着Silverlight+WC ...
- Silverlight+WCF 新手实例 象棋 主界面-事件区-求和认输(三十二)
在线演示地址:Silverlight+WCF 新手实例 象棋 在线演示 事隔几篇,我们又回到事件区,继续其它两个按钮事件,来张图吧: 在Silverlight+WCF 新手实例 象棋 主界面-事件区- ...
- Silverlight+WCF 新手实例 象棋 该谁下棋-B下A停(三十)
2019独角兽企业重金招聘Python工程师标准>>> 在线演示地址:Silverlight+WCF 新手实例 象棋 在线演示 上上一节,就是二十八节:Silverlight+WCF ...
- Silverlight+WCF 新手实例 象棋 主界面-事件区-返回退出(三十三)
在线演示地址:Silverlight+WCF 新手实例 象棋 在线演示 还是那张图: 本节实现返回大厅和退出系统: 一:返回大厅,其实很简单的说,就是转向房间列表了. 可是,转向前也有很多事情要处理的 ...
- wcf简单教程(10) ajax调用,wcf简单教程(10) ajax调用
wcf简单教程(10) ajax调用 [2021-02-11 16:23:59] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(&q ...
- Silverlight+WCF 新手实例 象棋 主界面-棋谱-回放-结局(四十)
在线演示地址: Silverlight+WCF 新手实例 象棋 在线演示 在Silverlight+WCF 新手实例 象棋 主界面-棋谱-回放(三十九)中,我们实现了用户的棋谱回放,在文章的下面,我们 ...
- Silverlight+WCF 新手实例 象棋 棋子移动-规则[附加上半盘限制](十)
上上一节,我们对棋子的下半盘棋子做了所有的规则限制,因为我们下棋的总是用下半盘的棋子来下,总没人用上半盘棋来下那么高境界的吧. 不过这节简单追加点代码,让那些企图高境界的人士可以临时性的自己和自己下. ...
- Silverlight+WCF 新手实例 象棋 主界面-棋谱-回放(三十九)
在线演示地址:Silverlight+WCF 新手实例 象棋 在线演示 本节完后,同时会更新Silverlight+WCF 新手实例 象棋 专题索引,并顺路提供第八阶段源码 在Silverlight+ ...
最新文章
- zendStudio|Eclipse 相关收藏
- 管理“我的右上角” : 介绍菜单栏图标软件 Bartender
- python trim函数_python strip()函数 介绍
- 可视化_仓库管理可视化
- python做游戏代码_利用Python基础代码语句,实现2G时代文字小游戏,世界如此简单!...
- java 公因数_Java程序(最大公因数与最小公倍数)
- 草稿 断开始datagrewvies 01
- android设计一个多线程和画图的程序小球,Android开发之多线程中实现利用自定义控件绘制小球并完成小球自动下落功能实例...
- SPSS分析技术:多元方差分析
- 架构设计中的方法学(五)
- 新华三模拟器STP和RSTP及其MSTP的作用与配置
- 【转】设计模式六大原则(1):单一职责原则
- Google App Engine初探
- 室外巡检项目搭建仿真环境
- 什么是java抽象_什么是java抽象
- C语言(谭浩强版本,主讲人:小甲鱼)P1-P9
- 拿来就能用的五个前端表白特效(免费)
- 【安卓】——Autofill Framework(自动填写)用法详解
- 单片机c语言篮球比分_基于单片机的篮球计时计分器设计(C语言编程、含proteus仿真图)...
- 关于区块链共识类型:PoW, PoS, DPoS, PoST的解释
热门文章
- java redis 网络断开_Redis长时间连接后自动断开
- 关于mysql设置varchar 字段的默认值''和null的区别,以及varchar和char的区别
- 物联网基础之了解CCP协议,COAP协议,MTQQ协议等
- python【数据结构与算法】剪枝策略
- 机器学习(MACHINE LEARNING)MATLAB遗传算法
- python【力扣LeetCode算法题库】914. 卡牌分组(reduce collections.Counter)
- Imagenet VGG-19网络加载和特征可视化
- 计算机应用基础浙大,2014春浙大远程教育计算机应用基础-3.Word知识题
- 718保时捷spyder_我要买保时捷718 Spyder的原因:新手也可以玩手动
- 网络推广方案分享网站想要更快的优化到首页的技巧!