我的第一个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踏出了第一步,我将继续努力!!

posted @ 2015-04-04 16:10  一夜秋2014  Views(242)  Comments(0Edit  收藏  举报