Создание функции чтения / записи для файлов UML

#c#

#c#

Вопрос:

Я работаю над программным обеспечением / редактором UML, в котором пользователь может создать диаграмму классов. Однако я хочу реализовать функцию сохранения и функцию, которая может загружать существующий файл UML. Что я могу сделать сейчас, так это открыть / сохранить файл с текстом, который записан в текстовом поле в приложении, которое я создал:

 namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (GemDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                File.WriteAllText(GemDialog.FileName, textBox.Text);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (LoadDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                StiLabel.Text = LoadDialog.FileName;
                textBox.Text = File.ReadAllText(StiLabel.Text);
            }
        }
    }
}
  

Я знаю, что могу реализовать функцию, которая может сохранять ее в формате .jpg, но это не то, что я хочу делать. Я просто хочу, чтобы пользователь мог сохранить свою работу, а затем снова открыть ее.

Ответ №1:

Потребуется еще несколько усилий, чтобы сделать это правильно. Используйте свойства и [XmlAttribute], чтобы пометить их (в противном случае все общедоступные свойства будут сериализованы по умолчанию). Затем вы можете сериализовать все это в XML, что является хорошим вариантом для сохранения настроек / конфигурации, что бы то ни было:

 XmlSerializer serializer = new XmlSerializer(typeof(UMLModel));
FileStream myFileStream = new FileStream("c:myUML.xml",FileMode.Open);
  

Перед сохранением убедитесь, что файл существует, или создайте его с помощью SaveFileDialog.
Где UMLModel — это ваш класс, который содержит все данные, которые вам нужно сохранить. Пожалуйста, прочитайте в качестве отправной точки.