First of all, when making your own collection types, you should inherit System.Collections.ObjectModel.Collection<T>
, which will allow you to override InsertItem
and other methods to gain complete control over the collection.
To answer your question, XmlSerializer
handles collection types differently to serialize the items in the collection. It will not serialize any properties (eg, List<T>.Capacity
).
You could move your properties to a different type that would contain the properties or the collection.
You could also try using the attributes that control XML serialization, but I'm not sure whether they'll help.