Serialización de una lista mantener una interfaz a XML

He estado leyendo, pero no he encontrado una solución a mi problema

Actualmente estoy trabajando con un Business Object que contendrá todos mis datos y necesitamos convertir este objeto hacia y desde XML.

Mi objeto contiene una lista de Acciones (Lista ...), pero hay 2 tipos de acciones (por ahora). Tengo que actuar en los tipos SimpleAction y CompositeAction, y ambos heredan de IAction, lo que permite que ambos se mantengan en la lista de Acciones.

Ahora es probable que pueda ver el problema, ya que las interfaces no se pueden serializar ya que no contienen datos.

¿Cómo, tal vez con algún código de muestra, escribo una Clase o Serializador que obtiene ese tipo de objeto y realiza la serialización del objeto con el tipo correcto?

Algún 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
}

Cualquier ayuda sería muy apreciada. :)

Respuestas a la pregunta(3)

Su respuesta a la pregunta