Реализация IXmlSerializable на объекте коллекции

У меня есть XML-файл, который выглядит примерно так:

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

И у меня есть два объекта, представляющих этот 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);
  }
}

Я использую XmlSerializer для сериализации / десериализации XmlObject в файл.

Проблема в том, что когда я реализовал пользовательские функции IXmlSerializable на своем «подчиненном» элементе, я всегда получал только один элемент (первый) в моей коллекции XmlObject.listitems при десериализации файла. Если я удаляю: IXmlSerializable все работает как положено.

Что я делаю не так?

Редактировать: я реализовал IXmlSerializable.GetSchema, и мне нужно использовать IXmlSerializable на моем «дочернем объекте» для выполнения некоторого преобразования пользовательских значений.

Ответы на вопрос(2)

Ваш ответ на вопрос