Implementowanie IXmlSerializable na obiekcie kolekcji

Mam plik xml wyglądający mniej więcej tak:

<xml>
  <A>value</A>
  <B>value</B>
  <listitems>
    <item>
      <C>value</C>
      <D>value</D> 
    </item>
  </listitems>
</xml>

I mam dwa obiekty reprezentujące ten xml:

class XmlObject
{
  public string A { get; set; }
  public string B { get; set; }
  List<Item> listitems { get; set; }
}

class Item : IXmlSerializable
{
  public string C { get; set; }
  public string D { get; set; }

  //Implemented IXmlSerializeable read/write
  public void ReadXml(System.Xml.XmlReader reader)
  {
    this.C = reader.ReadElementString();
    this.D = reader.ReadElementString();
  }
  public void WriteXml(System.Xml.XmlWriter writer)
  {
    writer.WriteElementString("C", this.C);
    writer.WriteElementString("D", this.D);
  }
}

Używam XmlSerializer do serializacji / deserializacji obiektu XmlObject do pliku.

Problem polega na tym, że gdy zaimplementowałem niestandardowe funkcje IXmlSerializable na moim „podobiekcie”, zawsze otrzymuję tylko jeden element (pierwszy) w kolekcji XmlObject.listitems podczas deserializacji pliku. Jeśli usunę: IXmlSerializable, wszystko działa zgodnie z oczekiwaniami.

Co mam zrobić źle?

Edycja: Mam zaimplementowane IXmlSerializable.GetSchema i muszę użyć IXmlSerializable na moim "obiekcie-dziecku" do wykonania jakiejś niestandardowej transformacji wartości.

questionAnswers(2)

yourAnswerToTheQuestion