Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: сохранить список  (Прочитано 4914 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Serguntii
Помогающий

ru
Offline Offline

« : 10-03-2014 17:01 » 

В чем может быть проблема, при записи списка в файл вылетает ошибка: не удается привести тип
Код:
......
......


        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
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 10-03-2014 17:22 » 

sergeyan, а почему записывается список, хотя ожидается элемент списка?
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Serguntii
Помогающий

ru
Offline Offline

« Ответ #2 : 10-03-2014 17:24 » new

Спасибо. заработало, видимо уже, перекурить нужно Улыбаюсь
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines