When version 3.0 of the .NET framework shipped, DataContractSerializer could only support a few categories of CLR types. Sowmy has a good list of these that you can find here . The recommended model was to use DataContractAttributes on classes and structs...