У меня есть этот XML-файл:
<readyGrid>
<gridRows>
<gridRow id="0">
<gridCol id="1">N.Doc.</gridCol>
<gridCol id="2">N.Doc. solo numero</gridCol>
<gridCol id="3">Data</gridCol>
<gridCol id="4">Intestatario</gridCol>
<gridCol id="5">Causale</gridCol>
<gridCol id="6">Stato</gridCol>
<gridCol id="7">Tot.doc.</gridCol>
<gridCol id="8">Data</gridCol>
<gridCol id="9">Peso</gridCol>
<gridCol id="10">Contrassegno</gridCol>
<gridCol id="11">Porto</gridCol>
<gridCol id="12">CAP</gridCol>
<gridCol id="13">Destinazione</gridCol>
<gridCol id="14">Indirizzo</gridCol>
<gridCol id="15">Citta'</gridCol>
<gridCol id="16">Provincia</gridCol>
<gridCol id="17">Colli</gridCol>
<gridCol id="18">Email</gridCol>
<gridCol id="19">Servizio</gridCol>
<gridCol id="20">Pagamento</gridCol>
<gridCol id="21">Fermo deposito</gridCol>
<gridCol id="22">Telefono destinatario</gridCol>
<gridCol id="23">Cellulare intestatario</gridCol>
</gridRow>
<gridRow id="1">
<gridCol id="1">any</gridCol>
<gridCol id="2">any</gridCol>
<gridCol id="3">any</gridCol>
<gridCol id="4">any</gridCol>
<gridCol id="5">any</gridCol>
<gridCol id="6">any</gridCol>
<gridCol id="7">any</gridCol>
<gridCol id="8">any</gridCol>
<gridCol id="9">any</gridCol>
<gridCol id="10">any</gridCol>
<gridCol id="11">any</gridCol>
<gridCol id="12">any</gridCol>
<gridCol id="13">any</gridCol>
<gridCol id="14">any</gridCol>
<gridCol id="15">any</gridCol>
<gridCol id="16">any</gridCol>
<gridCol id="18">any</gridCol>
<gridCol id="19">any</gridCol>
<gridCol id="20">any</gridCol>
<gridCol id="22">any</gridCol>
</gridRow>
</gridRows>
</readyGrid>
Это динамический файл, в котором может быть много gridRow, все внутри тега.
: где id равен 0, он говоритстолбец заголовка, и из id = "1" он перечисляет все данные.
Мне нужно десериализовать этот файл .XML в классах. Вот что у меня есть на данный момент:
[XmlRoot(Namespace = "", ElementName = "readyGrid")]
public class Root
{
[XmlElement("gridRows")]
public List<GridRows> GridRows { get; set; }
}
public class GridRows
{
[XmlElement("gridRow")]
public List <GridRow> GridRow { get; set; }
}
public class GridRow
{
[XmlAttribute("id")]
public int Id { get; set; }
[XmlAttribute("gridCol")]
public List<GridCol> GridCol { get; set; }
}
public class GridCol
{
[XmlAttribute("id")]
public int idColumn { get; set; }
public string Content { get; set; }
}
И код, который следует десериализовать и поместить в классы:
XmlSerializer serializer = new XmlSerializer(typeof(Root));
var reader = new StreamReader(uploadFilePath);
List<GridRows> results = ((Root)serializer.Deserialize(reader)).GridRows;
Однако последний пример кода не работает, сбойна первой линии. (System.InvalidOperationException, ошибка в отражении ..)
Интересно, есть ли самый простой способ десериализации этого XML-файла в классах или что я должен изменить в коде, чтобы заставить его работать. Важно то, что я беру id = "" и содержимое между тегами.