Я искал навсегда, пытаясь выяснить, что я делаю неправильно, пытаясь десерализовать некоторые XML в список. Я могу получить десерилизацию всего, кроме ответов, так что десерилизация работает, но, похоже, я что-то упускаю в украшениях класса. Ответы отображаются в «testObj», но являются нулевыми.
Любая помощь приветствуется.
Образец XML
<?xml version="1.0" encoding="utf-8" ?>
<TestObj xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<question>
<stem>this is the question stem</stem>
<answers>
<answer>answer 1</answer>
<answer>answer 2</answer>
<answer>answer 3</answer>
<answer>answer 4</answer>
</question>
<question .... </question>
<question .... </question>
<question .... </question>
</TestObj>
[Serializable]
public class TestObj
{
[XmlElement(ElementName = "question")]
[XmlElement(typeof(QuestionObj))]
public List<QuestionObj> Questions { get; set; }
public int Id { get; set; }
public string Name;
}
[Serializable]
public class QuestionObj
{
[XmlElement(ElementName = "stem")]
public string Stem { get; set; }
[XmlArray("answers")]
[XmlArrayItem(ElementName = "answer")]
[XmlArrayItem(typeof(AnswerObj))]
public List<AnswerObj> Answers { get; set; }
public int TestId { get; set; }
public int Id { get; set; }
}
[Serializable]
public class AnswerObj
{
[XmlElement(ElementName = "answer")]
public string Answer { get; set; }
public int Id { get; set; }
public int StemId { get; set; }
}
Object returned:
Question:this is the question stem
answers
answer:null
answer null;
etc