2016-09-19 15 views
0

リストの最初のエクスポート/インポートを外部XMLファイルとの間で設定しようとしています。次のようにReadFromXmlFile方法で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 

:開始すると私は、次のコードを持っている

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 

しかし、私はプログラムの実行時に、次のエラーを取得しておいてください。スロー

例外 ' System.Xml.dllのSystem.InvalidOperationException '

System.Xml.dllで' System.InvalidOperationException '型の未処理の例外が発生しました

追加情報: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

@Madricalあなたは正しいですが、あなたが提供したスニペットは、読書のみを表示し、書いてはいけません。詳細はMSDNのリンクhttps://msdn.microsoft.com/en-us/library/mt656715.aspx – jbmintjb