The short answer is: Bart Beyers is correct, apply the [DataContract] attribute.
The long anser is taken from MSDN:
New complex types that you create must have a data contract defined for them to be serializable. By default, the DataContractSerializer infers the data contract and serializes all publicly visible types. All public read/write properties and fields of the type are serialized.
http://msdn.microsoft.com/en-us/library/ms733127%28v=vs.110%29.aspx