Approaches to Serialization
At this point in the chapter, you have learned how to create a service contract, expose complex types as data contracts, and create message contracts for greater control over message format. These are the serialization staples for WCF services. In a perfect situation, when you go about designing your services, you can create data contracts representative of the types used by service operations; you’ll let the service description be generated from the service contract and these data contract types; and you won’t ever have to look at XML. But things aren’t always that simple.
Despite the fact that data contracts are the preferred format for exposing complex types in the service contract, there are times when other approaches to serialization may be necessary. Here are some scenarios you may need to consider:
Exposing preexisting types that implement the
SerializableAttributeandISerializableConforming messages to a specific XSD schema
Mapping incoming messages to existing types that are not serializable or that don’t match a predefined schema
In this section, I’ll discuss other serialization concepts and explain practical approaches to these scenarios.
Types Supporting Serialization
Although the focus has been on data contracts thus far, the following types can all be
serialized through the DataContractSerializer:
Data contracts are complex types decorated with the
DataContractAttributeor theCollectionDataContractAttribute.Serializable types are types decorated ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access