В чем может быть проблема, при записи списка в файл вылетает ошибка: не удается привести тип 
......
......
        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