WCF有多少合同类型
本文关键字:同类型 多少 WCF | 更新日期: 2023-09-27 17:58:43
我最近遇到了一个问题"WCF有多少合同类型"。我知道树契约类型:ServiceContract
、DataContract
、OperationContract
,但有人告诉我有四种。你能解释一下WCF还有哪些其他类型的合同吗?
数据契约-它描述数据的格式,并定义数据应如何序列化/反序列化。要为您的服务定义
DataContract
,可以使用DataContract
、DataMember
。请参阅MSDN 上的DataContract
服务合同-它描述了服务公开的操作。它还可以描述消息交换模式。可以使用[ServiceContract]和[OperationContract]属性来定义服务合同。请参阅MSDN 上的
ServiceContract
消息契约-它使我们能够控制SOAP消息。如果只使用数据契约,所有数据都将在SOAP消息体中,但如果需要对SOAP消息头进行控制/访问,则可以使用
MessageContract
。消息协定可以应用于使用MessageContract
属性的类型。可以使用MessageHeader
和MessageBodyMember
附件将自定义标头和正文包含到消息中。请参阅MSDN 上的MessageContract
故障合约-这是一种特殊的合约,用于让客户知道服务端出现了问题。如果抛出异常,它就无法以现在的方式到达客户端。WCF会处理它,并使用SOAP Fault Contract将错误消息传递给客户端。您还可以为一个操作定义一个Fault Contract。您需要使用
[FaultContract(typeof(YouCustomFault))]
和YouCustomFault
以及DataContract
和DataMember
属性来装饰您的操作。请参阅MSDN 上的FaultContract
而且没有OperationContract
这样的约定,它只是定义服务约定操作的一个属性。