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); } } } }
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(); } }