- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微软在WCF 3.5中就通过提供基于Web HTTP的编程模式使我们很容易地创建基于REST的服务,WCF 4.0中对此进行了较大的改进。为了让读者对REST在WCF中的应用有一个大致的了解,我们先来进行一个简单的实例演示。 [源代码从这里下载]
一、定义服务契约
在这个实例中,我们创建一个简单的服务来管理员工的基本信息。至于实例程序的结构,我们依然采用熟悉的包含三个项目(Service.Interface、Service和Client)的解决方案。如下所示的是定义在Service.Interface中用于表示员工的Employee类的定义,它是一个数据契约。
1: [DataContract(Namespace=/)]
2: public class Employee
3: {
4: [DataMember]
5: public string Id { get; set; }
6:?
7: [DataMember]
8: public string Name { get; set; }
9:?
10: [DataMember]
11: public string Department { get; set; }
12:?
13: [DataMember]
14: public string Grade { get; set; }
15:?
16: public override string ToString()
17: {
18: return string.Format(ID: {0,-5}姓名: {1, -5}级别: {2, -4} 部门: {3},Id, Name, Grade, Department);
19: }
20: }
接下来我们定义了如下一个表示服务契约的接口IEmployeesService。和基于SOAP的服务契约定义不同,我们无需在相应的操作方法上面应用OperationContractAttribute特性,但是应用在接口/类上的ServiceContractAttribute特性仍是必需的。在这里替换OperationContractAttribute特性的分别是WebGetAttribute和WebInvokeAttribute,它们均定义在System.ServiceModel.Web程序集中。
1: [ServiceContract(Namespace=/)]
2: public interface IEmployees
3: {
4: [WebGet(UriTemplate = all)]
5: IEnumerableEmployee GetAll();
6:?
7: [WebGet(UriTemplate = {id})]
8: Employee Get(string id);
9:?
10: [WebInvoke(UriTemplate = /, Method = POST)]
11: void Create(Employee employee);
12:?
13: [WebInvoke(UriTemplate = /, Method = PUT)]
14: void Update(Employee employee);
15:?
16: [WebInvoke(UriTemplate = {id}, Method = DELETE)]
17: void Delete(string id);
18: }
契约接口IEmployeesService中定义了5个操作,分别用于实现针对员工数据的获取、添加、修改和删除。按照REST设计原则,我们将被操作的员工信息体现为某种网络资源,而操作类型最好与相应的HTTP方法相匹配。在操作方法中针对资源的操作类型与HTTP方法之间的匹配是通过应用在它们上面的WebGetAttribute和WebInvokeAttribute特性来体现。
WebGetAttribute针对GET方法,而其他的HTTP方法则通过WebInvokeAttribute的Method属性来体现。在IEmployeesService中,两个用于获取员工信息GetAll和Get方法均应用了WebGetAttribute特性,而其他的Create、Update和Delete方法在应用了WebInv
您可能关注的文档
最近下载
- 陕西中医药大学学位英语考试真题.pdf VIP
- 第5单元—解决问题(减法) (2).ppt
- 上海传芯半导体掩模基版研发与产业化项目环评报告表 (1).pdf
- 2024年学校辅导员少先队知识竞赛备考题库.docx VIP
- 高鸿业《西方经济学(微观部分)》(第6版)课后习题附带答案详解(完整版).pdf
- 丰田雷凌说明书.docx VIP
- 《物联网在生活中的应用》教学设计.docx VIP
- 炼油设备知识分解.ppt
- 鲁科版(五四学制)(三起)英语五年级上册Unit2 Lesson3 Wang Hong is worried 课件.pptx
- 2024年度学校辅导员少先队知识竞赛备考题库(含答案).docx VIP
文档评论(0)