Поэтому у меня есть список различных элементов Xml под родителю вроде этого:XmlSerializer экономии элемент порядка
<Group>
<Circle Radius="5"/>
<Rectangle Height="10" Width="15"/>
<Rectangle Height="7" Width="8"/>
<Circle Radius="12"/>
</Group>
И классы:
public class Group
{
[XmlElement("Circle")]
public List<Circle> Circles { get; set;}
[XmlElement("Rectangle")]
public List<Circle> Circles { get; set;}
}
public class Circle
{
// The position it was encountered in the list of elements
public int Position { get; set; }
[XmlAttribute("Radius")]
public string Radius { get; set;}
}
public class Rectangle
{
// The position it was encountered in the list of elements
public int Position { get; set; }
[XmlAttribute("Width")]
public string Width { get; set; }
[XmlAttribute("Length")]
public string Length { get; set; }
}
Поэтому в основном то, что я хотел бы здесь нужно сохранить порядок, в котором эти разные элементы произошли как дочерние элементы под родителем, сохраняя свое место в позиции integer. Единственное решение, о котором я могу думать, это иметь статическую переменную, которая учитывает экземпляры этих объектов и задает позицию, используя счетчик указанной переменной. Хотелось бы верить, что есть «более чистый» способ справиться с этим, и я бы по достоинству оценил любые предложения.
Edit: Чтобы быть более ясно, куда я иду с этим я хочу взять два списка (потому что они имеют разные объекты с разными атрибутами) и совместно nvert их к другому классу с общим базовый класс. Поэтому у меня есть список этих элементов базового класса, которые упорядочены так же, как они были объявлены в xml, чтобы я мог нарисовать их на экране в этом порядке (подумайте о панели стека). Таким образом, если наследование возможно во время десериализации Xml, которое также может устранить мою проблему, если они автоматически могут быть проанализированы в список базового класса.
Можете ли вы разместить пример желаемого результата? –
Не является ли «списком» сериализованным и десериализованным по заказу? –
CodeCaster
Я обновил свой ответ, извините за двусмысленность. – Thermonuclear