В конечном счете, вы можете отменить руководство CA, если этого требует ваш сценарий; это абсолютно нормально. Однако! Список только для получения должен быть в порядке; типичным сценарием будет:
public List<Bar> Bars { get; } = new List<Bar>();
(необязательно с некоторыми атрибутами [XmlElement]
, [XmlArray]
или [XmlArrayItem]
et c).
Если это не делает ' т работа; пожалуйста, опубликуйте минимальный пример, который показывает, что он не работает.
Вот пример того, как он работает:
class Program
{
static void Main()
{
var foo = new Foo {
Bars = {
new Bar { X = 42 },
new Bar { X = 12 },
new Bar { X = 6 },
}
};
var ser = new XmlSerializer(foo.GetType());
var sw = new StringWriter();
ser.Serialize(sw, foo);
var xml = sw.ToString();
Console.WriteLine(xml);
var sr = new StringReader(xml);
var clone = (Foo)ser.Deserialize(sr);
foreach (var bar in clone.Bars)
Console.WriteLine(bar.X);
}
}
public class Foo
{
public List<Bar> Bars { get; } = new List<Bar>();
}
public class Bar
{
public int X { get; set; }
}