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. :)