webhttpbinding 端点中的合同是什么?

what is the contract in webhttpbinding endpoint?

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

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

我的问题是,contract 的具体用途是什么?它是否向尝试访问它的浏览器提供某种信息?

在 WCF 中,契约 (ContractDescription) 是一个操作集合,指定端点与外界通信的内容。每个操作都是一次消息交换。例如,请求消息和关联的回复消息形成 request/reply 消息交换。

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

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