dos999
05.02.2010, 15:33
столкнулся со следующей проблемой
есть классы
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. помогите реализовать
есть классы
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. помогите реализовать