Моя структура данных XML выглядит так.
<SalesOrders>
<SalesOrder>
<Id>123</Id>
....
</SalesOrder>
</SalesOrders>
Мой код С# выглядит так.
[XmlRoot(ElementName = "SalesOrders", Namespace = "")]
public class SalesOrders : List<SalesOrder> { }
public class SalesOrder {
public int Id{get;set;}
}
Десериализация работает нормально, но я ограничен тем, что имя класса "SalesOrder" должно совпадать с именем тега <SalesOrder>. Я не могу понять, как украсить свой список или свой элемент таким образом, чтобы на них могло быть «несоответствие имени».. Любой..
Сначала вы обычно не нужно - и не должно - наследовать List<T>
. Вместо этого ваш класс может имеют список.
Кроме того, вы можете использовать Name
-свойство Xml...Attribute
, чтобы указать имя в xml, отличное от имени в иерархии классов.
[XmlRoot(ElementName = "SalesOrders", Namespace = "")]
public class MyArbitraryName
{
[XmlElement("SalesOrder")]
public List<SalesOrder> Orders { get; set; }
}
public class SalesOrder
{
public int Id{get;set;}
}
Вы, вероятно, не хочу вытекать из
List<T>
, но у вас просто есть класс со списком иId
-свойством.