我的第一个WCF程序,很简单适合我等菜鸟
1.首先我罗列一下网站搜索并经过自己理解的WCF的含义:
1)WCF:(WIndows Communication Foundation)是由微软是由微软发展的一组数据通信的应用开发接口,可以翻译为Windows通讯接口,
最终目标是通过进程或不同的系统、通过本地网络或是通过Internet收发客户和服务之间的消息,专门用于面向服务开发(SOA)
2)WCF整合了.NET远程技术(Remoting)、Web Service和微软消息队列服务等技术,它可以跨进程、跨机器、跨平台、跨子网、企业网乃至于 Internet
2.下面我新建一个WCF服务:
在visual studio 2012中新建项目,做如下图操作
删除系统生成的两个文件IService1.cs与Service1.svc,并且“添加新项”-->"WCF服务",命名User.svc,结果如下图
打开IUser.cs文件,代码如下
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; //必须 using System.Text; namespace First_Wcf { // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IUser”。 [ServiceContract] //来说明接口是一个WCF的接口,如果不加的话,将不能被外部调用 public interface IUser { [OperationContract] //来说明该方法是一个WCF接口的方法,不加的话将不能被外部调用 string ShowName(string name); } }
打开User.svc,代码如下
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; //必须 using System.Text; namespace First_Wcf { // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“User”。 // 注意: 为了启动 WCF 测试客户端以测试此服务,请在解决方案资源管理器中选择 User.svc 或 User.svc.cs,然后开始调试。 public class User : IUser { public string ShowName(string name) { string wcfName = string.Format("这是WCF服务,你输入的姓名是:{0}",name); return wcfName; } } }
程序写好了,下面测试看对不对。F5启动项目后出现下图弹出框
双击“ShowName()”,得到下图
在上图右侧把“(null)”修改为张三得到下图
到这一步说明WCF服务程序没有错误。
3.新建windows窗体应用程序,用来调用服务
窗体程序Test_First_Wcf如图并且设置为启动项目
右键“引用”,添加“服务引用”,出现下图弹出框
如果之前的WCF服务已经部署到IIS上的话,可以在地址栏中输入地址就可引用,现在我没有部署,所以点击“发现”得到下图
点击确定即可
在窗体文件Form1中拖来如下控件,Label2用来显示结果,所以把Label2的Text设为空
后台程序如下
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Test_First_Wcf { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { ServiceReference1.UserClient uc = new ServiceReference1.UserClient();//实例化服务 string name = this.textBox1.Text; this.label2.Text = uc.ShowName(name); } } }
F5运行程序如下
很简单的程序,WCF踏出了第一步,我将继续努力!!