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

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.

主站蜘蛛池模板: 宿州市| 白玉县| 新建县| 威远县| 连山| 玛曲县| 嫩江县| 建湖县| 华容县| 洪湖市| 林州市| 喀喇沁旗| 余姚市| 辽宁省| 吉林市| 侯马市| 福泉市| 上饶市| 乌拉特后旗| 桦川县| 遵化市| 新化县| 林西县| 老河口市| 灌阳县| 正镶白旗| 荔浦县| 东光县| 永平县| 阜新市| 旬邑县| 禹州市| 博湖县| 句容市| 宜兰县| 鱼台县| 安泽县| 淮北市| 岑溪市| 樟树市| 凤阳县|