I left one thing unsaid in the serialization rules and Aaron's sharp eyes caught it promptly. As he mentioned in his blog , mixing interface programming model (such as IXmlSerializable or ISerializable) with DataContract programming model is disallowed Read More...