В чем может быть проблема, при записи списка в файл вылетает ошибка: не удается привести тип
......
......
private void LoadPortIpLink()
{
PortIpLink tem = new PortIpLink();
string file = Directory.GetCurrentDirectory() + @"\portlink.xml";
if (File.Exists(file))
{
List<PortIpLink> listofa = new List<PortIpLink>();
XmlSerializer formatter = new XmlSerializer(tem.GetType());
FileStream ReadFileStream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read);
byte[] buffer = new byte[ReadFileStream.Length];
ReadFileStream.Read(buffer, 0, (int)ReadFileStream.Length);
MemoryStream stream = new MemoryStream(buffer);
ComPortLinkList = (List<PortIpLink>)formatter.Deserialize(stream);
ReadFileStream.Close();
}
else
{
ComPortLinkList = new List<PortIpLink>();
tem.ipadr = "192.168.0.1";
tem.BaudRat = 9600;
tem.comportname = "Com1";
tem.databit = 8;
// tem.hnd = Handshake.None;
// tem.par = Parity.None;
// tem.stpb = StopBits.One;
tem.ReadTimeout = 500;
tem.WriteTimeout = 500;
ComPortLinkList.Add(tem);
SavePortIpLink(ComPortLinkList);
}
}
private void SavePortIpLink(List<PortIpLink> listofa)
{
PortIpLink tem = new PortIpLink();
string file = Directory.GetCurrentDirectory() + @"\portlink.xml";
TextWriter WriteFileStream = new StreamWriter(file);
XmlSerializer formatter = new XmlSerializer(tem.GetType());
try
{
formatter.Serialize(WriteFileStream, listofa); /// ругается на эту строчку, файл появляется но пустой.
WriteFileStream.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
......
......
[Serializable()]
public class PortIpLink
{
public string ipadr;
public string comportname;
public int BaudRat;
// public Parity par;
// public StopBits stpb;
public int databit;
// public Handshake hnd;
public int ReadTimeout;
public int WriteTimeout;
}//class