我的第一个WCF程序,很简单适合我等菜鸟

时间:2023-03-09 18:26:04
我的第一个WCF程序,很简单适合我等菜鸟

1.首先我罗列一下网站搜索并经过自己理解的WCF的含义:

1)WCF:(WIndows Communication Foundation)是由微软是由微软发展的一组数据通信的应用开发接口,可以翻译为Windows通讯接口,
             最终目标是通过进程或不同的系统、通过本地网络或是通过Internet收发客户和服务之间的消息,专门用于面向服务开发(SOA)

2)WCF整合了.NET远程技术(Remoting)、Web Service和微软消息队列服务等技术,它可以跨进程、跨机器、跨平台、跨子网、企业网乃至于 Internet

2.下面我新建一个WCF服务:

在visual studio 2012中新建项目,做如下图操作

我的第一个WCF程序,很简单适合我等菜鸟

删除系统生成的两个文件IService1.cs与Service1.svc,并且“添加新项”-->"WCF服务",命名User.svc,结果如下图

我的第一个WCF程序,很简单适合我等菜鸟

打开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启动项目后出现下图弹出框

我的第一个WCF程序,很简单适合我等菜鸟

双击“ShowName()”,得到下图

我的第一个WCF程序,很简单适合我等菜鸟

在上图右侧把“(null)”修改为张三得到下图

我的第一个WCF程序,很简单适合我等菜鸟

到这一步说明WCF服务程序没有错误。

3.新建windows窗体应用程序,用来调用服务

窗体程序Test_First_Wcf如图并且设置为启动项目

我的第一个WCF程序,很简单适合我等菜鸟

右键“引用”,添加“服务引用”,出现下图弹出框

我的第一个WCF程序,很简单适合我等菜鸟

如果之前的WCF服务已经部署到IIS上的话,可以在地址栏中输入地址就可引用,现在我没有部署,所以点击“发现”得到下图

我的第一个WCF程序,很简单适合我等菜鸟

点击确定即可

我的第一个WCF程序,很简单适合我等菜鸟


在窗体文件Form1中拖来如下控件,Label2用来显示结果,所以把Label2的Text设为空

我的第一个WCF程序,很简单适合我等菜鸟

后台程序如下

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程序,很简单适合我等菜鸟

很简单的程序,WCF踏出了第一步,我将继续努力!!