using System.Collections.Generic;
using System.Xml.Serialization;
public static void Main()
var serializer = new XmlSerializer(typeof(Carpark));
using var sr = new StringReader(xml);
var cp = (Carpark)serializer.Deserialize(sr);
<Truck brand='Chrysler' kg='2100'/>
<Car brand='Mercedes' kg='1100'/>
<Tractor brand='John Deere' kg='1500'/>
public List<Truck> Trucks { get; set; }
public List<Car> Cars { get; set; }
public List<Tractor> Tractors { get; set; }
[XmlInclude(typeof(Truck))]
[XmlInclude(typeof(Car))]
[XmlInclude(typeof(Tractor))]
public string Type => this.GetType().Name;
public string Brand { get; set; }
public int Weight { get; set; }
public class Truck : Vehicle
public class Car : Vehicle
public class Tractor : Vehicle