I have structure like this:
public interface A
{
public void method();
}
public class B : A
{
}
public class C : A
{
}
List list;
Assuming you're using the built in .net XML serialization you should take a look at the following attribute:
System.Xml.Serialization.XmlIncludeAttribute
It allows you to instruct the serializer to include other types when serializing/deserializing.
Adding new types to the list and not updating the serialization meta data is a common source of mistakes, make sure you have adequate test coverage.