官术网_书友最值得收藏!

Chapter 1. Working with Contracts

In this chapter, we will cover:

  • Defining a one-way Contract
  • Making DataContract forward-compatible
  • Generate DataContract from XML Schema
  • Using XMLSerializer to control message serialization
  • Using MessageContract to control the SOAP Message
  • Adding a custom SoapHeader via Contract
  • Returning custom exception data through FaultContract

Introduction

Contracts often occur in business affairs to restrict the operations between the operators that are working with each other. For distributed communication services, Contracts also play a very important role in making sure that the service consumers can co-operate with the service providers correctly. Looking around, we can see the term SOA (Service-Oriented Architecture) being widely used. Technically speaking, SOAP (Simple Object Access Protocol) can be explained as a set of components that can be invoked, and whose interface descriptions can be published and discovered. From an SOA perspective, with Contracts properly defined, service consumers can get an idea of how to work with the target service without knowing how the service is actually implemented.

As a unified communication programming platform, WCF provides complete support for Contract-related design in various parts of WCF service development. These include ServiceContract, OperationContract, DataContract, MessageContract, FaultContract, and so on. ServiceContract and OperationContract are used to represent a Service and its operations' definition (such as the operation collection and operation signatures). DataContract is used to represent an agreement of the data that will be exchanged between the service client and server. If the service designer wants to take full control over the data envelope transferred between client and server, they can use MessageContract to control the underlying service messages. WCF also provides FaultContract for the service designer to declaratively associate custom Exception types to certain service operations, and the corresponding fault content will be returned when an error occurs.

This chapter provides seven recipes on how to work with various contracts in WCF service development. These include defining a one-way service operation that helps you get familiar with standard ServiceContract and OperationContract declaration. Next, we will cover how to use FaultContractAttribute to associate a custom SOAP fault data type with certain service operations that need a customized error format. With the third, fourth, and fifth recipes, we will focus on DataContract designing topics, such as DataContract versioning, using XMLSerializer for the DataContract types serialization, and the contract-first approach for DataContract generation. The last two recipes describe how to use MessageContract to perform low-level manipulation on the service operations message formatting, such as returning arbitrary XML data as message content and adding a custom SOAPHeader through MessageContract class members.

主站蜘蛛池模板: 临朐县| 平利县| 墨江| 沅江市| 高要市| 兴义市| 马山县| 古丈县| 武陟县| 寿宁县| 海伦市| 武胜县| 大埔县| 津市市| 吴江市| 关岭| 吴川市| 孙吴县| 中江县| 故城县| 洪雅县| 平陆县| 玉溪市| 肃宁县| 腾冲县| 广宗县| 舒兰市| 嘉鱼县| 察哈| 如皋市| 延寿县| 抚州市| 盈江县| 克拉玛依市| 兴化市| 驻马店市| 古丈县| 大邑县| 夏河县| 寻甸| 永宁县|