how para deserializar un nodo xml con un valor y un atributo usando la serialización asp.net
Tengo 4 clases pequeñas para deserializar xml de una encuesta xml entrante, a clases utilizables para construir la encuesta.
ahora, sé cómo establecer una propiedad de una clase, para que coincida con un determinado atributo o elemento en el xml, y si ese elemento es solo una cadena, eso es fácil, pero ¿qué pasa si el elemento también tiene un atributo como en el siguiente ejemplo? @
<Questions>
<Question id="a guid">
<AnswerItems>
<AnswerItem Id="a guid">3</AnswerItem>
<AnswerItem Id="a guid">2</AnswerItem>
<AnswerItem Id="a guid">5</AnswerItem>
</AnswerItems>
</Question>
</Questions>
la clase de preguntas se vería así:
[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
}
Ok, entonces el valor de un nodo AnswerItem, eso es lo que quiero obtener también. fácilmente no podría usar la clase AnswerItem, y solo usar un XmlArray AnswerItems del tipo String y poner los valores en la matriz, pero luego perdería el atributo Id del AnswerItem.