private void SerializeMenuItem_OnClick(object sender, RoutedEventArgs e) { SerializeDialog dialog = new SerializeDialog(); if (dialog.ShowDialog() != true) { return; } bool isXml = dialog.IsXml; string fileName = dialog.FileName; var items = new Item[(int)inv.Type]; for (int i = 0; i < items.Length; i++) { items[i] = inv[i]; } ISerializer serializer = ItemSerializerFactory.CreateSerializer(isXml); using (FileStream f = new FileStream(fileName, FileMode.Create)) { try { serializer.Serialize(f, items); } catch (Exception ex) { Debug.WriteLine(ex.ToString()); MessageBox.Show("Inventory cannot be serialized!", "Error!", MessageBoxButton.OK, MessageBoxImage.Error); } } }
private void DeserializeMenuItem_OnClick(object sender, RoutedEventArgs e) { DeserializeDialog dialog = new DeserializeDialog(); if (dialog.ShowDialog() != true) { return; } bool isXml = dialog.IsXml; string fileName = dialog.FileName; ISerializer serializer = ItemSerializerFactory.CreateSerializer(isXml); using (FileStream f = new FileStream(fileName, FileMode.Open)) { Item[] items; try { items = (Item[])serializer.Deserialize(f); } catch (Exception ex) { Debug.WriteLine(ex.ToString()); MessageBox.Show("Cannot get object data!", "Error!", MessageBoxButton.OK, MessageBoxImage.Error); return; } for (int i = 0; i < items.Length; i++) { inv[i] = items[i]; } RaisePropertyChanged(null); } }