none
Сериализация в XML класса наследника от ObservableCollection RRS feed

  • Вопрос

  • Есть базовый класс

        [Serializable]
        public partial class Базовый : ObservableCollection<object>
        {
            [XmlAttribute]
            public virtual string Name { get; set; }
        }

    И класс наследник

        [Serializable]
        public partial class Наследник : Базовый
        {
            [XmlAttribute]
            public override string Name { get; set; }
        }

    При сериализации свойство Name в классе отсутствует

    Наследник в = new Наследник() { Name = "www" };
                using (StreamWriter Поток = new StreamWriter("Тест.xml", false, Encoding.Default))
                    new XmlSerializer(typeof(Наследник)).Serialize(Поток, в);     

    Подскажите пожалуйста как исправить?




    7 апреля 2018 г. 10:40

Ответы

  • Собственно наследование видимо не при чем так как имени и в случае базового класса. 

    Проблема видимо в ObservableCollection который воспринимается сериалайзером как массив.

    Я думаю решение в правильной организации классов - ObservableCollection типично в view model, a сохранять надо model. 

    Если вам очень надо то наверное можно реализовать IXmlSerializable и сохранять что вам надо самостоятельно.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    7 апреля 2018 г. 16:56
    Модератор