У меня есть XML-файлы, которые мне нужно десериализовать. Я использовал инструмент XSD из Visual Studio для создания объектных файлов c #. сгенерированные классы десериализуют файлы, за исключением того, что мне нужно.
Буду признателен за помощь в выяснении, как решить эту проблему.
Дочерние элементы с именем «data» должны быть атрибутами родительского элемента «task».
Ниже приведен сокращенный пример XML:
<task type="Nothing" id="2" taskOnFail="false" >
<data value="" name="prerequisiteTasks" />
<data value="" name="exclusionTasks" />
<data value="" name="allowRepeats" />
<task type="Wait for Tasks" id="10" taskOnFail="false" >
<data value="" name="prerequisiteTasks" />
<data value="" name="exclusionTasks" />
<data value="" name="allowRepeats" />
</task>
<task type="Wait for Tasks" id="10" taskOnFail="false" >
<data value="" name="prerequisiteTasks" />
<data value="" name="exclusionTasks" />
<data value="" name="allowRepeats" />
</task>
</task>
Определение класса, к которому я пытаюсь десериализоваться, имеет вид:
public class task {
public string prerequisiteTasks {get;set;}
public string exclusionTasks {get;set;}
public string allowRepeats {get;set;}
[System.Xml.Serialization.XmlElementAttribute("task")]
public List<task> ChildTasks {get;set;}
}
Дочерние 'задачи в порядке, но сгенерированные файлы помещают элементы' data 'в массив данных [], а не как именованные члены класса задачи, как мне нужно.