WCF是由微软公司开发的一款.NET Framework 3.5的重要组成部件,它的影音方式很多,有很多重要的功能值得我们去深入研究。比如今天为大家介绍的WCF服务契约就是其中一个比较重要的应用知识。
一个WCF服务契约是一个用元数据属性[ServiceContract]修饰的.NET接口或类。每个WCF服务可以有一个或多个契约,每个契约是一个操作集合。
首先我们定义一个.NET接口:IStuServiceContract,定义两个方法分别实现添加和获取学生信息的功能
- void AddStudent(Student stu);stuCollection GetStudent();
用WCF服务契约模型的元数据属性ServiceContract标注接口IStuServiceContract,把接口设计为WCF契约。用OperationContract标注AddStudent,GetStudent
GetStudent()返回一个类型为stuCollection类型的集合。AddStudent()需要传入Student实体类作为参数。
- namespace WCFStudent
- {
- [ServiceContract]
- public interface IStuServiceContract
- {
- [OperationContract]
- void AddStudent(Student stu);
- [OperationContract]
- stuCollection GetStudent();
- }
- [DataContract]
- public class Student
- {
- private string _stuName;
- private string _stuSex;
- private string _stuSchool;
- [DataMember]
- public string StuName
- {
- get { return _stuName; }
- set { _stuName = value; }
- }
- [DataMember]
- public string StuSex
- {
- get { return _stuSex; }
- set { _stuSex = value; }
- }
- [DataMember]
- public string StuSchool
- {
- get { return _stuSchool; }
- set { _stuSchool = value; }
- }
- }
- public class stuCollection : List<Student>
- {
- }
- }
WCF服务契约和客户交换SOAP信息。在发送端必须把WCF服务和客户交互的数据串行化为XML并在接收端把XML反串行化。因此客户传递给AddStudent操作的Student对象也必须在发送到服务器之前串行化为XML。WCF默认使用的是一个XML串行化器DataContractSerializer,用它对WCF服务和客户交换的数据进行串行化和反串行化。
【编辑推荐】