2011-02-24 127 views
2

我有以下代碼來進行xml序列化。在反序列化過程中XML文檔(0,0)出現錯誤

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)) 
     { 

       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; 
    } 

當我按下SaveButton時,我的label.content被保存到一個xml文件中。但是,當我按加載按鈕加載此XML文件,我收到錯誤「XML文檔(0,0)中有錯誤」。按下加載按鈕後,我去打開我的XML文件,它變成空白,所有東西都被刪除。任何人都可以幫助我解決這個加載按鈕錯誤?

+0

該文件並沒有成爲空白。首先是空白的。這是通過打開空白文檔產生的錯誤。 – 2011-02-24 03:13:30

回答

2

好解決,

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

     } 

應該已經FileMode.Open代替FileMode.Create