Будет ли добавление базового класса для моих объектов нарушать десериализацию .NET / XML? - PullRequest
1 голос
/ 19 сентября 2011

Базовый класс будет содержать только методы.

1 Ответ

1 голос
/ 19 сентября 2011

Если вы не измените номер версии вмещающей сборки, то добавление базового класса не должно быть проблемой для двоичной сериализации, а для XML это вообще не имеет значения, поскольку оно очень слабо связано с реальным типом.

Просто убедитесь, что база также помечена как [Serializable] для двоичной сериализации.Я только что проверил и подтвердил это.

Сериализировал следующий класс с помощью Binary Formatter

[Serializable]
    public class Test
    {
        public string Name { get; set; }
    }

Получил следующий кодированный base64 вывод:

AAEAAAD ///// AQAAAAAAAAAMAgAAAEpDb25zb2xlQXBwbGljYXRpb24xLCBWZXJzaW9uPTEuMC4wLjAs IEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAIENvbnNvbGVBcHBsaWNhdGlv bjEuUHJvZ3JhbStUZXN0AQAAABU8TmFtZT5rX19CYWNraW5nRmllbGQBAgAAAAYDAAAABWhhc2FuCw ==

Затем добавляют следующий базовый класс для теста:.

[Serializable]
public class Base
{
   public void Dhuz() { }
}

И де сериализовано base64 закодирован вещь снова успешно без проблем

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...