Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }