【问题标题】:Serialization of XML Document (System.InvalidOperationException)XML 文档的序列化 (System.InvalidOperationException)
【发布时间】:2016-09-19 14:53:38
【问题描述】:

我正在尝试设置我的第一个列表到/从外部 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

但我在执行程序时不断收到以下错误:

抛出异常: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...

有什么想法吗?我到处搜索有类似问题的地方,但没有解决方案有帮助。

【问题讨论】:

  • 请发布 XML(或附近示例),因为这也可能与发现任何解析问题有关。
  • 我试图填充的 XML 文件是在启动时创建的,但在我遇到错误时它永远不会填充。

标签: c# xml


【解决方案1】:

看起来如果文件不存在,您将创建一个新的空白 XML 文件。我怀疑您的错误是由于 XML 文件不包含任何内容。

【讨论】:

  • XML 文件 mygames.xml 确实是空白的。根据我收集的信息,一开始的初始代码只是在文件不存在时创建文件,然后一旦创建,它将使用从程序输入的数据填充 XML 文件。
  • @Madrical 你是对的,但是你提供的 sn-ps 只显示阅读,没有写作。这是 MSDN 链接以获取更多信息msdn.microsoft.com/en-us/library/mt656715.aspx
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多