omo desserializar um nó xml com um valor e um atributo usando a serialização asp.n

Tenho 4 classes pequenas para desserializar xml de uma pesquisa xml recebida, para classes utilizáveis para criar a pesquis

gora, eu sei como definir uma propriedade de uma classe, para corresponder a um determinado atributo ou elemento no xml, e se esse elemento é apenas uma string, é fácil, mas e se o elemento também tiver um atributo como no exemplo a seguir?

<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>

a classe de perguntas ficaria assim:

[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, então o valor de um nó AnswerItem, é isso que eu quero obter também. Eu não poderia facilmente usar a classe AnswerItem e apenas usar um XmlArray AnswerItems do tipo String e colocar os valores na matriz, mas perderia o atributo de ID do AnswerItem.

questionAnswers(1)

yourAnswerToTheQuestion