webhttpbinding端点中的合同是什么?

时间:2017-02-15 15:56:20

标签: wcf wcf-binding

创建WCF RESTful服务时,部分配置包括创建服务端点。像下面的东西

  <service name="MyService" behaviorConfiguration="serviceBehavior">
    <endpoint address="" binding="webHttpBinding" bindingConfiguration="UsernameWithTransport" contract="IMyService" behaviorConfiguration="web"></endpoint>
  </service>

我的问题是,contract究竟提供了什么?它是否向尝试访问它的浏览器提供某种信息?

1 个答案:

答案 0 :(得分:0)

在WCF中合同(ContractDescription)是一组操作,用于指定端点与外部世界的通信。每个操作都是消息交换。例如,请求消息和关联的回复消息形成请求/回复消息交换。

ContractDescription对象用于描述WCF合同及其操作。在ContractDescription中,每个合同操作都有一个相应的OperationDescription,它描述了作为合同一部分的每个操作的各个方面,例如操作是单向还是请求/回复。每个OperationDescription还使用MessageDescriptionCollection描述构成操作的消息。 ContractDescription包含对使用编程模型定义合同的接口的引用。此接口使用ServiceContractAttribute标记,其对应于端点操作的方法使用OperationContractAttribute标记。

合同也很重要,因为您可以在单个WCF服务中公开不同的服务合同。