Royi Namir
Royi Namir

Reputation: 148744

What type of serialization uses Wcf behind the scenes?

I know there's 3 type s of serialization in .net :

Soap , Xml , Binary.

Wcf instructed the DataContract attribute which also serialize ... but via what ?

Binary is not - i know.

So by which mechanism ?

Upvotes: 9

Views: 6717

Answers (2)

Ladislav Mrnka
Ladislav Mrnka

Reputation: 364409

You are messing two techniques together.

  • Serialization - how objects are converted to messages - we have XML and JSON formatters available out of the box (DataContractSerializer, DataContractJsonSerializer, XmlSerializer)
  • Encoding - how the message is transferred - we have three encoders out of the box
    • TextMessageEncoder - for SOAP messages transferred as text - also supports MTOM and POX (Plain old XML) if message version is set to None
    • BinaryMessageEncoder - for XML/SOAP messages transferred as binary data
    • WebMessageEncoder - for XML and JSON messages in REST services

These features are used by standard bindings. WCF support as many serializations and encoding as you want => you can build your own.

Upvotes: 15

Darin Dimitrov
Darin Dimitrov

Reputation: 1039438

It is the binding defined for the given endpoint which specifies the serialization mechanism. For example:

  • basicHttpBinding and wsHttpBinding use SOAP
  • netTcpBinding uses binary serialization
  • webHttpBinding could use XML, Json, ...

You can read more about the different built-in bindings and their properties on this article. Thanks to the extensibility of WCF you could of course write your own custom bindings.

Upvotes: 16

Related Questions