I have the following classes
[XmlRoot] public class AList { public List ListOfBs {get; set;} } public class B { public string BaseProperty {g
Have a look at the documentation of XmlSerializer. There is a constructor which expects known types as the second parameter. That should work fine for you use case.