Serializando uma lista mantém uma interface para XML

Eu tenho lido por aí, mas não encontrei uma solução para o meu problema

Atualmente, estou trabalhando com um Objeto de Negócios que conterá todos os meus dados e precisamos converter esse objeto para e de XML.

Meu objeto mantém uma lista de ações (lista ...), mas há dois tipos de ação (por enquanto). Eu tenho que tipos de ação SimpleAction e CompositeAction, e ambos herdam de IAction permitindo que ambos sejam mantidos na lista de ações.

Agora você provavelmente pode ver o problema, pois as Interfaces não podem ser serializadas, pois não contêm dados.

Como, com talvez algum código de exemplo, eu escrevo uma classe ou serializador que obtém esse tipo de objeto e executa, em seguida, serializa o objeto com o tipo correto?

Algum código:

  [XmlArray("Actions")]
  public List<IAction> Actions { get; set; }

  public interface IAction
   {
     int ID { get; set; }

     ParameterCollection Parameters { get; set; }

     List<SectionEntity> Validation { get; set; }

     TestResultEntity Result { get; set; }

     string Exception { get; set; }
   }

[XmlType("A")]
public class SimpleActionEntity : IAction
{
    #region IAction Members

    [XmlAttribute("ID")]
    public int ID { get; set; }

    [XmlIgnore]
    public ParameterCollection Parameters { get; set; }

    [XmlIgnore]
    public List<SectionEntity> Validation { get; set; }

    [XmlIgnore]
    public TestResultEntity Result { get; set; }

    [XmlElement("Exception")]
    public string Exception { get; set; }

    #endregion
}

Qualquer ajuda seria muito apreciada. :)

questionAnswers(3)

yourAnswerToTheQuestion