研究WCF REST架构
类、属性方面
下文中服务协定与服务契约属同一概念
特性类:
DataContractFormatAttribute类
指示Windows Communication Foundation(WCF)基础结构使用DataContractSerializer。
与XmlSerializerFormatAttribute属性类似
XmlSerializerFormatAttribute类
指示Windows Communication Foundation(WCF)基础结构使用XmlSerializer代替XmlObjectSerializer。
DataContractSerializer类
使用提供的数据协定,将类型实例序列化和反序列化为XML流或文档。此类不能被继承。
DataContractSerializerOperationBehavior类
表示DataContractSerializer的运行时行为
ServiceContractAttribute类
指示接口或类在Windows Communication Foundation(WCF)应用程序中定义服务协定
OperationContractAttribute类
指示方法定义一个操作,该操作是Windows Communication Foundation(WCF)应用程序中服务协定的一个部分
WebGetAttribute类
表示指示服务操作逻辑上是检索操作,并且的属性只能由WCF其他编程模型调用。
WebInvokeAttribute类
表示指示服务操作逻辑上是调用操作,并且的属性只能有WCF其他编程模型调用。
除了OperationContractAttribute之外,WebInvokeAttribute属性也会应用到服务操作,并将该操作与UriTemplate以及表示调用的基础传输谓词(如HTTP POST、PUT或DELETE)相关联。(WebGetAttribute相同道理)
WebInvokeAttribute.RequestFormat属性,确定对服务操作发出的请求和格式。可能的值为Xml和Json。(WebGetAttribute相同道理)
WebHttpBehavior类
启用Windows Communication Foundation(WCF)服务的Web编程模型。
UriTemplate类
一个表示统一资源标识符(URI)模板的类。
非特性类:
WebOperationContext成员
可以轻松访问Web请求和响应上下文属性的帮助器类。
HttpStatusCode枚举
包含为HTTP定义的状态代码的值
WebServiceHost类
一个ServiceHost派生类,它是对Windows Communication Foundation(WCF)REST编程模型的补充
WebServiceHost(Object,Uri[])使用指定的单一服务器实例和基址初始化WebServiceHost类的新实例。
WebServiceHost(Type,Uri[])使用指定的服务类型和基址初始化WebServiceHost类的新实例。
如果WebServiceHost在服务说明中找不到终结点,则它将在服务的基址中自动为HTTP和HTTPS基址创建一个默认终结点。
此外WebServiceHost类会将WebHttpBehavior添加到所有没有该行为但具有WebMessageEncodingElement的终结点中。
AspNetCompatibilityRequirementsAttribute类
应用于Windows Communication Foundation(WCF)服务以指示该服务能否在ASP.NET兼容模式下运行。
AspNetCompatibilityRequirementsAttribute.RequirementsMode属性 获取或设置该服务所需的ASP.NET兼容级别
AspNetCompatibilityRequirementsMode枚举指定Windows Communication Foundation(WCF)服务能否以与ASP.NET兼容的模式运行。
WebHttpBinding类
一个绑定,可用于为通过HTTP请求(而不是SOAP消息)公开的Windows Communication Foundation(WCF) Web服务配置终结点。
Global.asax文件(也称为ASP.NET应用程序文件)是一个可选的文件,该文件包含响应ASP.NET或HTTP模块所引发的应用程序级别和会话级别事件的代码。
HttpApplication类 定义ASP.NET应用程序中的所有应用程序对象通用的方法、属性和事件。
HttpApplication类的实例是在ASP.NET基础结构中创建的,而不是由用户直接创建的。
RouteTable类存储应用程序的URL路由
RouteTable.Routes属性 获取从RouteBase类派生的对象的集合。
ServiceRoute类 允许为支持无扩展基址的WCF服务创建HTTP路由
ServiceRoute构造函数 使用指定的路由前缀、服务主机工厂和服务类型初始化ServiceRoute类的新实例。
WebServiceHostFactory类 在可动态创建主机实例以响应传入消息的托管宿主环境中提供WebServiceHost的实例工厂。
<system.web>元素(ASP.NET设置架构)
指定配置文件中ASP.NET配置设置的根元素,并包含用于配置ASP.NET Web应用程序和控制应用程序行为方式的配置元素。
Web.config文件中的<system.webService>节用于指定适用于Web应用程序的IIS 7.0设置。
子元素:
<modules>每次请求时都会调用托管代码模块,通过该模块可对请求或响应进行自定义。
<system.serviceModel> 此配置节包含所有Windows Communication Foundation(WCF)服务的设置。它还包含公开此服务的终结点。
子元素:
<serviceHostingEnvironment>此元素定义服务承载环境要为特定传输实例化的类型。如果此元素为空,则使用默认类型。
属性aspNetCompatibilityEnbled一个布尔值,指示是否已为当前应用程序启用了ASP.NET兼容模式。默认值为false。
此属性设置为true时,对Windows Communication Foundation(WCF)服务的请求将流经ASP.NET HTTP管道,而通过非HTTP 协议的通信将被禁止。
<standardEndpoints>此配置节用于定义一个标准终结点集合,这些终结点是预配置的可重用终结点。
标准终结点具有一个或多个设置为固定值的地址、绑定 和协定特性。
子元素:
<webHttpEndpoint> 此配置元素定义带有自动添加<webHttp>行为的固定<webHttpBinding>绑定的标准终结点。
在编写REST服务时,请使用此终结点 。
<services>服务是在配置文件的services节中定义的。每个服务都有自己的service配置节
子元素:
<service>元素包含Windows Communication Foundation(WCF)服务的设置。它还包含公开此服务的终结点。
name指定要进行实例化的服务的类型
子元素:
<host>指定服务主机的设置
<endpoint>元素 指定用于公开服务的服务终结点的绑定、协定和地址属性。
属性:
address 一个包含终结点地址的字符串。
绑定 必需的字符串属性,此属性指定要使用的绑定类型。
contract 一个字符串,指示此终结点公开了哪个协定。