Спасибо. Вот еще интересная статья про сериализацию и полиморфизм
http://www.tdoc.ru/c/dotnet/net-fram...-f2-page4.html
Там еще пара способов.
1) С помощью аннотации XmlInclude прописать базовому классу список всех наследников, что не есть гуд.
2) Классом XmlAttributes можно при сериализации задать список базовых классов. Это уже можно сделать в ран тайме, не зная списка всех потомков.