Type '{0}' in namespace '{1}' cannot be used as the base type of a data contract type, because it itself does not have a ...