For performance reasons — deserializing using a constructor with no default parameters and setting properties is rather slow — the way WCF is handled is much faster.
For this reason, the DataContractSerializer does not require a taskless public constructor (for example, XmlSerializer) - you do not need it, it will not be used in any case.
source
share