Я пытаюсь написать LINQ to Objects/XML-запрос, который будет создавать объекты. I имеют класс, который имеет свойство IList
от SomeModelClass
. SomeModelClass
также имеет несколько IList
, которые необходимо заполнить из XML.LINQ to Objects - Назначить список свойства
Это первый раз, когда я попытался запросить несколько уровней вложенного XML, и я не уверен, как это сделать.
В настоящее время код не компилируется, поскольку select new
, кажется, не в состоянии быть вложенным. Как я могу на самом деле запросить вложенный XML-объект для создания объекта, который имеет список объектов, который также имеет список строк?
Я показал код, который я попытался далеко.
У меня есть класс, как это:
public class MyClass
{
public string Name { get; set }
public IList<SomeModelClass> ModelList { get; set; }
}
И это мой класс модели:
public class SomeModelClass
{
public IList<string> MyList1 { get; set; }
}
XML-выглядит следующим образом:
<someXml>
<section name="test">
<myModelClassXml>
<someValue value="string1" />
<someValue value="string2" />
<someValue value="string3" />
</myModelClassXml>
</section>
<section name="test2">
<myModelClassXml>
<someValue value="string1" />
</myModelClassXml>
</section>
</someXml>
И код у меня есть до сих пор:
var query = (from r in xdoc.Descendants("someXml").Descendants("section")
select new MyClass()
{
Name = r.Attribute("name").Value,
//Make list of SomeModelClass AND ALSO populate SomeModelClass's lists
select new SomeModelClass
{
MyList1 = What needs to be here?
}
});