Есть некая программа в которой я реализвовал сохранение в файл введенных пользователем данных.
SaveFileDialog saveFileDialog = new SaveFileDialog
{
Filter = "DF файлы (*.df)|*.df"
};
if (saveFileDialog.ShowDialog() == true)
{
Mouse.SetCursor(Cursors.Wait);
using (FileStream fs = new FileStream(saveFileDialog.FileName, FileMode.Create))
{
/*var serializer = new XmlSerializer(typeof(ObservableCollection<ListBoxItemVM>));
serializer.Serialize(fs, DevList);*/
DataContractSerializer ser = new DataContractSerializer(typeof(ObservableCollection<ListBoxItemVM>));
ser.WriteObject(fs, DevList);
}
Mouse.SetCursor(Cursors.Arrow);
MessageBox.Show(Application.Current.MainWindow, "Данные сохранены.", "Информация", MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.Cancel);
}
Из ListBoxItemVM я удалил некоторые поля, и закинул их отдельное окно. Теперь мне нужно при сохранении, сохранять оба файла. Я думаю сделать так, сохраняю один файл куда нибудь во временную папку, потом второй файл, затем записываю эти файлы в архив с именем который указал пользватель.
При открытии процесс обратный, разархивировал архив, получил 2 файла и каждый из них десериализовал.
В связи с малым опытом программирования на C# у меня возник вопрос, насколько этот способ правильный, может есть способ лучше, более оптимизированно это сделать.