Я читал, но не нашел решения своей проблемы
В настоящее время я работаю с бизнес-объектом, который будет содержать все мои данные, и нам нужно преобразовать этот объект в XML и из него.
Мой объект содержит список действий (список ...), но есть 2 типа действий (на данный момент).
Мне нужно типы действий SimpleAction и CompositeAction, и они оба наследуются от IAction, позволяя им обоим храниться в списке действий.
Теперь вы, вероятно, видите проблему, поскольку интерфейсы не могут быть сериализованы, так как они не содержат данных.
Как, возможно, с помощью некоторого примера кода, написать класс или сериализатор, который получает этот тип объекта и выполняет затем сериализацию объекта с правильным типом?
Код:
[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
}
Любая помощь будет принята с благодарностью. :)