WCF Data Contracts

16

Click here to load reader

Transcript of WCF Data Contracts

Page 1: WCF Data Contracts

WCF Data Transfer & Serialization

Part1: Data ContractsSankarsan Bose

2nd November 2009

Page 2: WCF Data Contracts

Data Transfer In Service Serializers in WCF Data Contracts Known Types Serializing Collections

Agenda

Page 3: WCF Data Contracts

Data Transfer In Service

Client

Proxy

Host Process

Service

Serialize

Serialize

Deserialize

Deserialize

Page 4: WCF Data Contracts

Serializers In WCF

Data Contract Serializer

• Converts .NET types to XML• Default Serializer in WCF• System.Runtime.Serializatio

n.DataContractSerializer class

• Works on DataContract & DataMember attributes

XML Serializer

• Converts .NET types to XML• Provides more control over

resultant XML attributes• Supported by ASMX

services

Page 5: WCF Data Contracts

Data Contract

Will this class be properly serialized in WCF by DataContractSerializer ??

public sealed class DataContractSerializer : XmlObjectSerializer

DataContractAttribute is not mandatory

Page 6: WCF Data Contracts

Data Contract

Default Serialization ; No fine grained control

Page 7: WCF Data Contracts

Data ContractCustom Namespace

Serialized XML

Page 8: WCF Data Contracts

Data Contract Data Contract Properties

Name – Name of the type in XML Schema

Namespace – XML Namespace

IsReference – To preserve object reference info

Page 9: WCF Data Contracts

Data Contract

Demo

Page 10: WCF Data Contracts

Data MemberData Member Properties

Name – Name of the element in XML Schema

Order – Order of the XML Element

IsRequired – Must be present

EmitDefaultValue – Emits a default value

Page 11: WCF Data Contracts

Data Member

Demo

Page 12: WCF Data Contracts

Known TypeBase Type is used method signature

Here Serializer needs additional data about the concrete class

This is done by KnownType attribute

Page 13: WCF Data Contracts

Known Type

Demo

Page 14: WCF Data Contracts

Serializing CollectionsCollections - Types that implement the IEnumerable interface, including arrays and generic collections

Dictionary collections - Types that implement the IDictionary or Generic IDictionary interfaces.

Serialization can be customized using CollectionDataContractAttribute

Page 15: WCF Data Contracts

Serializing Collections

Demo

Page 16: WCF Data Contracts

Thank You