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

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.

主站蜘蛛池模板: 临高县| 洛隆县| 昔阳县| 旬邑县| 桑植县| 额济纳旗| 鄯善县| 克山县| 乡城县| 呼和浩特市| 东兰县| 辉县市| 拜泉县| 铜梁县| 兴安盟| 汉源县| 金山区| 通州区| 辽中县| 丹江口市| 新闻| 黄石市| 潮州市| 宜章县| 琼海市| 江西省| 肥西县| 鄂尔多斯市| 油尖旺区| 临澧县| 临泉县| 南通市| 林西县| 石屏县| 武强县| 昆明市| 太仓市| 灌阳县| 余姚市| 高陵县| 龙江县|