开发者

There is an error in XML document (0, 0) during deserialization

开发者 https://www.devze.com 2023-02-13 15:23 出处:网络
i have the following code to for xml serialization. public class FormSaving { private string major; public string Majorversion

i have the following code to for xml serialization.

    public class FormSaving
    {
        private string major;

        public string Majorversion
        {
            get;

            set;

        }
    }



    private void SaveButton_Click(object sender, RoutedEventArgs e)
    {
        string savepath;
        SaveFileDialog DialogSave = new SaveFileDialog();
        // Default file extension
        DialogSave.DefaultExt = "txt";
        // Available file extensions
        DialogSave.Filter = "XML file (*.xml)|*.xml|All files (*.*)|*.*";
        // Adds a extension if the user does not
        DialogSave.AddExtension = true;
        // Restores the selected directory, next time
        DialogSave.RestoreDirectory = true;
        // Dialog title
        DialogSave.Title = "Where do you want to save the file?";
        // Startup directory
        DialogSave.InitialDirectory = @"C:/";
        DialogSave.ShowDialog();
        savepath = DialogSave.FileName;
        DialogSave.Dispose();
        DialogSave = null;

        FormSaving abc = new FormSaving();
        abc.Majorversion = MajorversionresultLabel.Content.ToString();
        using (Stream savestream = new FileStream(savepath, FileMode.Create))
        {开发者_C百科

                XmlSerializer serializer = new XmlSerializer(typeof(FormSaving));
                serializer.Serialize(savestream, abc);
        }



    }


    private void LoadButton_Click(object sender, RoutedEventArgs e)
    {


        Stream checkStream = null;
        Microsoft.Win32.OpenFileDialog DialogLoad = new Microsoft.Win32.OpenFileDialog();
        DialogLoad.Multiselect = false;
        DialogLoad.Filter = "XML file (*.xml)|*.xml|All files (*.*)|*.*";
        if ((bool)DialogLoad.ShowDialog())
        {
            try
            {
                if ((checkStream = DialogLoad.OpenFile()) != null)
                {
                    loadpath = DialogLoad.FileName;
                    checkStream.Close();
                }
            }
            catch (Exception ex)
            {
                System.Windows.MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
            }
        }
        else
        {
            System.Windows.MessageBox.Show("Problem occured, try again later");
        }

        FormSaving abc;
        using (Stream loadstream = new FileStream(loadpath, FileMode.Create))
        {
            XmlSerializer serializer = new XmlSerializer(typeof(FormSaving));
            abc = (FormSaving)serializer.Deserialize(loadstream);

        }

        MajorversionresultLabel.Content = abc.Majorversion;
    }

When i press the SaveButton, my label.content is saved into an xml file. However when i press the load button to load this xml file, i get the error "There is an error in XML document (0, 0)". I went to open my xml file after pressing the load button, it becomes blank and everything got erased. Can anyone help me fix this load button error?


ok solved,

using (Stream loadstream = new FileStream(loadpath, FileMode.Open))
        {
            XmlSerializer serializer = new XmlSerializer(typeof(FormSaving));
            abc = (FormSaving)serializer.Deserialize(loadstream);

        }

should have been FileMode.Open instead of FileMode.Create

0

精彩评论

暂无评论...
验证码 换一张
取 消