2016-09-19 2 views
0

Я пытаюсь настроить мой первый экспорт/импорт списка в/из внешнего XML-файла. После начала у меня есть следующий код:Сериализация XML-документа (System.InvalidOperationException)

 private void Form1_Load(object sender, EventArgs e) 
    { 
     string path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 
     if (!Directory.Exists("C:\\Temp")) 
      Directory.CreateDirectory("C:\\Temp"); 
     if (!File.Exists("C:\\Temp\\mygames.xml")) 
      File.Create("C:\\Temp\\mygames.xml").Close(); 
     //Call method to read data from XML to List<> 
     videogame = ReadFromXmlFile<List<vglist>>("C:\\Temp\\mygames.xml"); 
     displayList(); 
    } // END of method Form1_Load 

С методом ReadFromXmlFile следующим образом:

public static T ReadFromXmlFile<T>(string filePath) where T : new() 
    { 
     TextReader reader = null; 
     try 
     { 
      var serializer = new XmlSerializer(typeof(T)); 
      reader = new StreamReader(filePath); 
      return (T)serializer.Deserialize(reader); 
     } // end try 
     finally 
     { 
      if (reader != null) 
       reader.Close(); 
     } // end finally 
    } // END ReadFromXmlFile<T> method 

Но я получаю следующее сообщение об ошибке при выполнении программы:

Exception брошенной: ' System.InvalidOperationException 'в System.Xml.dll

Необработанное исключение типа «Исключение System.InvalidOperationException» произошло в System.Xml.dll

Дополнительная информация: В документе XML есть ошибка (0, 0).

Мой класс настроен следующим образом:

public class vglist 
{ 
    [XmlElement("gameName")] // XML tag 
    public string GameName // game field 
    { 
     get; 
     set; 
    } 
etc... 

Есть идеи? Я ищу везде, где есть подобные проблемы, но нет решений, которые помогают.

+0

Пожалуйста, разместите XML (или пример), так как это может также иметь отношение к обнаружению любых проблем синтаксического анализа. – ryancdotnet

+0

XML-файл, который я пытаюсь заполнить, создается при запуске, но он никогда не заполняется к моменту достижения ошибки. – Madrical

ответ

1

Похоже, что файл не существует, создавая новый пустой XML-файл. Я подозреваю, что ваша ошибка связана с XML-файлом, в котором ничего нет.

+0

XML-файл mygames.xml действительно пуст. Из того, что я собрал, исходный код в начале - это просто создать файл, если он не существует, а затем, как только он это сделает, он заполнит XML-файл данными, введенными из программы. – Madrical

+0

@ Магический вы правы, но фрагменты, которые вы предоставили, показывают только чтение, отсутствие записи. Вот ссылка MSDN для получения дополнительной информации https://msdn.microsoft.com/en-us/library/mt656715.aspx – jbmintjb

Смежные вопросы