XmlException in WCF deserialization: "Name cannot begin with '<'" - in automatic property backing fields

I think I have found more information to help explain this issue, (at least in so far as why the error is appearing on certain types only).

The DTOs which are getting exceptions reported against them are;

  • published as part of my [ServiceKnownType] attribute
  • marked with [Serializable]
  • NOT marked with [DataContract]

Adding the [DataContract] attribute to the type resolves this issue. I have no idea why, and still no idea why this error is intermittent in when it happens, but consistent in what it affects.