Сериализация XML - конструктор по умолчанию - PullRequest
0 голосов
/ 29 августа 2011

У меня есть несколько классов, которые происходят от абстрактного базового класса. Эти производные классы необходимо сериализовать в XML, однако они не имеют конструктора без параметров. Существует большое количество производных классов, поэтому я бы предпочел не возвращаться назад и добавлять ко всем из них конструктор без параметров.

Я надеюсь, что есть что-то, что я могу сделать с базовым классом, который позволит сериализовать их без необходимости изменять каждый отдельный класс. У кого-нибудь есть идеи о том, как этого можно достичь?

Вот базовый пример классов:

public abstract class MyBase
{
    internal MyBase()
    { }

    //Various abstract properties here
}

public class MyDerivedClass : MyBase
{
    //Various methods/Properties here
}

1 Ответ

0 голосов
/ 29 августа 2011

Самая большая проблема, с которой вы столкнетесь, заключается в том, что вы не можете десериализовать экземпляр MyBase, потому что он абстрактный.Это означает, что вам нужно будет что-то сделать с тем, как будут создаваться классы.

Возможно, вам нужно просто принять попадание и добавить соответствующий конструктор, либо без параметров, и полагаться на атрибут [Serializable] по умолчанию, либо настроить сериализацию класса, реализуя * 1005.*.

...