ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

C# Наследование и серилизация
  #1  
Старый 05.02.2010, 15:33
dos999
Познающий
Регистрация: 15.02.2008
Сообщений: 98
Провел на форуме:
183980

Репутация: 50
По умолчанию C# Наследование и серилизация

столкнулся со следующей проблемой

есть классы
Код:
public class Device
{
public string ConnectionString;
public int Type;
public virtual Boolean Connect()                    
{return false;}
}

public class DeviceS
{
public Guid SGuid;
[XmlArrayItem("Device", typeof(Device))]
public ArrayList Items;
}
и есть 2 класса наследованные от Device
Код:
public class Camera : Device
{
        public override Boolean Connect() 
        {
           /*тут какой то код*/
        }
}

public class Hub : Device
{
        public override Boolean Connect() 
        {
           /*тут какой то код*/
        }
}
мне нужно сохранять и загружать из XMLя класс DeviceS. Делаю я это так:
Код:
       public DeviceS Load()
        {
            FileStream fStream = null;
            XmlSerializer xmlFormat = new XmlSerializer(typeof(Devices));
            try
            {
                fStream = new FileStream(XML_FILE_NAME, FileMode.Open,
                    FileAccess.Read, FileShare.None);
                DeviceS LDeviceS = new DeviceS();
                LDeviceS = (DeviceS)xmlFormat.Deserialize(fStream);
                fStream.Close();
                return LDeviceS;
            }
            catch
            {   
                return false;
            }            
        }

        public bool Save(DeviceS LDeviceS)
        {
            XmlSerializer xmlFormat = new XmlSerializer(typeof(DeviceS));
            FileStream fStream = new FileStream(XML_FILE_NAME, FileMode.Create,
                FileAccess.Write, FileShare.None);
            xmlFormat.Serialize(fStream, LDeviceS);
            fStream.Close();
            return true;           
        }
проблема в том что DeviceS.Items должен содержать не родителя Device а потомков Camera и/или Hub. помогите реализовать
 
Ответить с цитированием
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ