如何使用asp.net序列化使用值和属性反序列化xml节点

我有4个小类来从一个xml轮询中反序列化xml,到可用的类来构建轮询。

现在,我知道如何从类中设置属性,以匹配xml中的某个属性或元素,如果该元素只是一个简单的字符串,但如果该元素也具有如下例所示的属性,该怎么办?

   3 2 5    

问题类看起来像这样:

 [Serializable()] public class Question { [XmlAttribute("Id")] public Guid QuestionId { get; set; } [XmlArray("AnswerItems")] [XmlArrayItem("AnswerItem", typeof(AnswerItem))] public AnswerItem[] AnswerItems { get; set; } } [Serializable()] public class AnswerItem { [XmlAttribute("Id")] public Guid QuestionId { get; set; } // how do i fetch the value of this node? // its not a XmlElement and it's not an XmlValue } 

好的,所以AnswerItem节点的值,这也是我想要得到的。 我可以很容易地不使用AnswerItem类,只使用String类型的XmlArray AnswerItems并将值放在数组中,但之后我会丢失AnswerItem的Id属性。

AnswerItem ,创建一个名为Value的属性,并使用XmlText属性对其进行标记。 此设置将使XmlSerializerAnswerItem元素中的文本读入Value属性。

 [Serializable()] public class AnswerItem { [XmlAttribute("Id")] public Guid QuestionId { get; set; } [XmlText] public string Value { get; set; } }