У меня есть XML, подобный следующему:
<feed>
<products>
<product>
</product>
.
.
.
<product>
</product>
</products>
</feed>
Я могу десериализовать xml, используя:
public class feed
{
public ProductList products { get; set; }
}
public class ProductList
{
[XmlElement("product")]
public List<Product> Products { get; set; }
}
var result = (feed)new XmlSerializer(typeof(feed)).Deserialize(xmlReader);
Я думал, что могу использовать корневой атрибут XML для управления десериализацией, т.е.
class Products
{
public List<Product> Products { get; set; }
}
var rootAtrr = new XmlRootAttribute("products");
var result = (Products)new XmlSerializer(typeof(Products), rootAtrr).Deserialize(xmlReader);
или еще лучше:
var result = (List<Product>)new XmlSerializer(typeof(List<Product>), rootAtrr).Deserialize(xmlReader);
Все вышеперечисленные изменения не работают.
Означает ли это, что корневой атрибут предназначен специально для корневого элемента ACTUAL вXML не с чего начать чтение?
Кроме того, означает ли это, что документ XML предписывает, какой класс модели определить?класс feed
в данном конкретном случае?
Или я пропускаю точку или 3?