WCF有多少合同类型

本文关键字:同类型 多少 WCF | 更新日期: 2023-09-27 17:58:43

我最近遇到了一个问题"WCF有多少合同类型"。我知道树契约类型:ServiceContractDataContractOperationContract,但有人告诉我有四种。你能解释一下WCF还有哪些其他类型的合同吗?

WCF有多少合同类型

WCF中有四种类型的合同:
  1. 数据契约-它描述数据的格式,并定义数据应如何序列化/反序列化。要为您的服务定义DataContract,可以使用DataContractDataMember。请参阅MSDN 上的DataContract

  2. 服务合同-它描述了服务公开的操作。它还可以描述消息交换模式。可以使用[ServiceContract]和[OperationContract]属性来定义服务合同。请参阅MSDN 上的ServiceContract

  3. 消息契约-它使我们能够控制SOAP消息。如果只使用数据契约,所有数据都将在SOAP消息体中,但如果需要对SOAP消息头进行控制/访问,则可以使用MessageContract。消息协定可以应用于使用MessageContract属性的类型。可以使用MessageHeaderMessageBodyMember附件将自定义标头和正文包含到消息中。请参阅MSDN 上的MessageContract

  4. 故障合约-这是一种特殊的合约,用于让客户知道服务端出现了问题。如果抛出异常,它就无法以现在的方式到达客户端。WCF会处理它,并使用SOAP Fault Contract将错误消息传递给客户端。您还可以为一个操作定义一个Fault Contract。您需要使用[FaultContract(typeof(YouCustomFault))]YouCustomFault以及DataContractDataMember属性来装饰您的操作。请参阅MSDN 上的FaultContract

而且没有OperationContract这样的约定,它只是定义服务约定操作的一个属性。