Я пытаюсь десериализовать некоторые xml. Вот оно:Deserialize xml не получает элемент
<FooBars xmlns="http://foos">
<Id1 xmlns="http://bars">2</Id1>
<Id2 xmlns="http://bars">7</Id2>
<Info xmlns="http://bars">
<Data>
<Field1>text1</Field1>
<Field2>text2</Field2>
<Field3>text3</Field3>
</Data>
<Data>
<Field1>text5</Field1>
<Field2>text6</Field2>
<Field3>text7</Field3>
</Data>
</Info>
</FooBars>
Я попытался это:
var myData = (FooBars)serializer.Deserialize(foobars.CreateReader());
...
[XmlRoot(ElementName = "FooBars", Namespace = "http://foos")]
public class FooBars
{
[XmlElement(ElementName = "Id1", Namespace = "http://bars")]
public string Id1 { get; set; }
[XmlElement(ElementName = "Id2", Namespace = "http://bars")]
public string Id2 { get; set; }
[XmlElement(ElementName = "Info", Namespace = "http://bars")]
public List<Data> Info { get; set; }
}
public class Data
{
[XmlElement(ElementName = "Field1")]
public string Field1 { get; set; }
[XmlElement(ElementName = "Field2")]
public string Field2 { get; set; }
}
Но это выглядит как класс данных не рассматривается как часть XML, так как он не сможет прочитать его. Я получаю все остальные элементы (ids), но не вещи, определенные в Data. Где я ошибаюсь?
Информация отсутствует закрывающая бирка? Основываясь на вашем отступе, он должен содержать элементы данных? – jacoblambert
К сожалению, отсутствующий тег является копией. Я хочу, чтобы результат содержал то, что определено в классе FooBars. Часть данных в элементе Info - это тот, который отсутствует в результатах – Cyan