Когда вы наследуете от List, вы можете попробовать что-то вроде
[Serializable]
[System.Xml.Serialization.XmlRoot("SuperDuperCollection")]
public class SuperDuperCollection : List<MyClass> { ... }
для украшения вашего класса, использование различных XmlAttributes должно позволить вам контролировать способ вывода XML при сериализации.
Просто дополнительное редактирование с некоторым тестовым кодом и выводом:
[Serializable]
public class MyClass
{
public int SomeIdentifier { get; set; }
public string SomeData { get; set; }
}
....
SuperDuperCollection coll = new SuperDuperCollection
{
new MyClass{ SomeData = "Hello", SomeIdentifier = 1},
new MyClass{ SomeData = "World", SomeIdentifier = 2}
};
Console.WriteLine(XmlSerializeToString(coll));
Выход:
<SuperDuperCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MyClass>
<SomeIdentifier>1</SomeIdentifier>
<SomeData>Hello</SomeData>
</MyClass>
<MyClass>
<SomeIdentifier>2</SomeIdentifier>
<SomeData>World</SomeData>
</MyClass>
</SuperDuperCollection>