WCF 入门之旅(1): 怎样使用接口数据契约和操作契约

      Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,主要用于提供.net framework下的通信,因为我自己对wcf学习的也比较浅,所以也就班门弄斧,稍微提供个入门篇,分享下我的学习经历吧,入门之旅我预计将分为以下四个部分(好吧,有点小累,可能要慢慢来):

        1.怎样使用接口数据契约和操作契约;

        2.怎样承载和运行契约中的数据服务;

        3.怎样测试WCF服务是否正常运行;

        4.怎样用客户端调用WCF服务。

        如果觉得我写的很糟糕,也可以直接参考MSDN的http://msdn.microsoft.com/zh-cn/library/ms734712.aspx,我觉的那个教程也不错,表示我这也是刚开始写博文,希望大家支持。

WCF 入门之旅(1): 使用接口创建数据契约和操作契约

        WCF服务是客户端与服务器之间通讯的一种协议,通信双方通过数据契约(DataContract)和操作契约(OperationContract)来规定通信双方的通信接口,按我个人的理解,就是服务器和客户端直接的交互操作只能是操作契约接口提供的操作,交互的数据类型只能是数据契约中的数据或者是void,int等常规数据,不然无法进行通信,明白这一点,你就应该明白wcf的作用其实主要就是通过这两种契约来制定通信协议。

        下面我将制定一个小的demo来讲解如何创建数据契约和操作契约:

         首先,新建项目,打开visual studio 2010,选择C#(我是用C#的,不会的还是看参考链接吧)中WCF相关的项目模板,有两个wcf服务应用程序和wcf工作流服务应用程序(用visual studio写多了的孩子都知道模板经常都有一个基础模板和一个特定定制版,本次采用基础模板wcf服务应用程序),取名WCFDemo;

               

  打开IService1.cs和Service1.svc.cs,其中其实就可以看到一个hello world的感觉,但是本次呢,我想自己来写一个,我想做一个frostService的WCF服务,所以呢,我们先删除IService1.cs和Service1.svc然后新建自己的WCF服务,在wcfdemo中选择添加新建项,添加WCF服务,(不是WCF数据服务,貌似那个复杂一些),命名为frostService.svc,可以看到项目中多了IfrostService.cs和frostService.svc,IfrostService.cs是本章的主角,他负责定义数据契约和操作契约的创建和定义,frostService.svc则负责契约的具体实现,现在打开IfrostService.cs.

             定义数据契约:可以直接在IfrostService.cs中添加需要的数据契约的model类或者自己在项目中新建自己的model类,这次我们设定数据为个人信息,包含两个数据成员,人的编号和人的姓名,代码如下

View Code
1 [DataContract]
2     public class Person
3     {
4         [DataMember]
5         public int Num { get; set; }
6 
7         [DataMember]
8         public string Name { get; set; }
9     }

          其中[DataContract]表示该类为数据契约中的对象,即wcf通信中能传递的对象,[DataMember]用于说明该类中能够在通讯中调用的数据成员,此处我想在操作协议中使用此数据类型。

           定义操作契约:操作协议需要定义在IfrostService类中,本次我将在其中定义通过传入人的编号和姓名,返回Person对象,代码如下

View Code
[ServiceContract]
    public interface IfrostService
    {
        [OperationContract]
        Person GetPerson(int num, string name);
       
    }

其中[ServiceContract]表示该接口为操作契约接口,[OperationContract]则表示该接口中某方法为契约方法,这里只是声明该方法,但是没有实现,只是表明通讯双方会有这个操作。

            至此,整个WCF的数据和操作契约就完成了。

            下一章将具体讲如何将契约实现以及如何查看正确的操作。谢谢,第一次博文。

 

 

 

 

原文地址:https://www.cnblogs.com/xiaokangfrost/p/2519746.html