Ejemplo n.º 1
0
 private void saveXmlButton_Click(object sender, EventArgs e)
 {
     if (saveFileDialog.ShowDialog() == DialogResult.OK)
     {
         using (var streamWriter = new StreamWriter(saveFileDialog.FileName))
         {
             if (saveFileDialog.FilterIndex == xmlFilterIndex)
             {
                 var serializer = new XmlSerializer(
                     typeof(List <Transport>),
                     types);
                 var textWriter = new StringWriter();
                 serializer.Serialize(textWriter, elements);
                 streamWriter.Write(loaderConverter.GetJson(textWriter.ToString(), convertersComboBox.SelectedItem.ToString()));
             }
             else if (saveFileDialog.FilterIndex == binFilterIndex)
             {
                 var serializer = new BinaryFormatter();
                 serializer.Binder = serializationBinder;
                 serializer.Serialize(streamWriter.BaseStream, elements);
             }
             else if (saveFileDialog.FilterIndex == lab3FilterIndex)
             {
                 var serializer = new SomeSerialiser();
                 serializer.Binder = serializationBinder;
                 serializer.Serialize(streamWriter, elements);
             }
         }
     }
 }
Ejemplo n.º 2
0
        private void openButton_Click(object sender, EventArgs e)
        {
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                using (var streamReader = new StreamReader(openFileDialog.FileName))
                {
                    try
                    {
                        if (openFileDialog.FilterIndex == xmlFilterIndex)
                        {
                            var serializer = new XmlSerializer(
                                typeof(List <Transport>),
                                types);
                            try
                            {
                                var textReader =
                                    new StringReader(loaderConverter.GetXml(streamReader));

                                elements =
                                    (List <Transport>)
                                    serializer.Deserialize(textReader);
                            }
                            catch (UnknownConverterException)
                            {
                                MessageBox.Show("Неизвестный тип конвертора", "Lab3",
                                                MessageBoxButtons.OK,
                                                MessageBoxIcon.Error);
                                return;
                            }
                            catch (ArgumentException)
                            {
                                MessageBox.Show("Неверный формат входного файла", "Lab3",
                                                MessageBoxButtons.OK,
                                                MessageBoxIcon.Error);
                                return;
                            }
                        }
                        else if (openFileDialog.FilterIndex == binFilterIndex)
                        {
                            var serializer = new BinaryFormatter();
                            serializer.Binder = serializationBinder;
                            elements          =
                                (List <Transport>)
                                serializer.Deserialize(
                                    streamReader.BaseStream);
                        }
                        else if (openFileDialog.FilterIndex == lab3FilterIndex)
                        {
                            var serializer = new SomeSerialiser();
                            serializer.Binder = serializationBinder;
                            elements          =
                                (List <Transport>)
                                serializer.Deserialize(streamReader);
                        }
                    }
                    catch (SerializationException ex)
                    {
                        MessageBox.Show(ex.Message, "Lab3", MessageBoxButtons.OK,
                                        MessageBoxIcon.Error);
                        return;
                    }
                    catch (InvalidOperationException ex)
                    {
                        MessageBox.Show(ex.InnerException.Message, "Lab3",
                                        MessageBoxButtons.OK,
                                        MessageBoxIcon.Error);
                        return;
                    }
                }
                RefreshTreeView();
            }
        }