Базовый проект содержит абстрактный базовый класс Foo. В отдельных клиентских проектах существуют классы, реализующие этот базовый класс.
Я хотел бы сериализовать и восстановить экземпляр конкретного класса, вызвав некоторый метод в базовом классе:
// In the base project:
public abstract class Foo
{
abstract void Save (string path);
abstract Foo Load (string path);
}
Можно предположить, что во время десериализации все необходимые классы присутствуют. Если возможно, каким-либо образом, сериализация должна выполняться в XML. Возможна реализация базового класса IXmlSerializable.
Я немного застрял здесь. Если мое понимание вещей верное, тогда это возможно, добавив [XmlInclude(typeof(UnknownClass))]
в базовый класс для каждого класса реализации, но классы реализации неизвестны!
Есть ли способ сделать это? У меня нет опыта с размышлениями, но я также приветствую ответы, используя его.
Изменить: Проблема заключается в сериализации De. Просто сериализация была бы легкой.: -)