Collection properties do not have to be read-write for the XmlSerializer to serialize and deserialize the contents correctly. The XmlSerializer will look for a method called Add on collection properties that implement ICollection or IEnumerable, and use that to populate the collection when deserializing an instance of the owner type.