XML文档的序列化(System.InvalidOperationException)

时间:2016-09-19 14:53:39

标签: c# xml

我尝试设置首次向/从外部XML文件导出/导入列表。一开始,我有以下代码:

        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

但是在执行程序时我一直收到以下错误:

抛出异常:&#39; System.InvalidOperationException&#39;在System.Xml.dll

未处理的类型&#39; System.InvalidOperationException&#39;发生在System.Xml.dll

其他信息:XML文档(0,0)中存在错误。

我的课程设置如下:

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

有什么想法吗?我在各处搜寻类似的问题,但没有任何解决方案可以提供帮助。

1 个答案:

答案 0 :(得分:1)

看起来如果该文件不存在,您创建一个新的空白XML文件。我怀疑你的错误是由于XML文件什么都没有。