XmlDocument.Load卡住了吗?

时间:2014-10-17 09:18:55

标签: c# xml winforms

我正在尝试从Windows窗体应用程序中的路径加载xml文件。

    public static ClassLayout GetClassLayout()
    {
        XmlDocument doc = new XmlDocument();
        doc.Load(Environment.CurrentDirectory + @"Files\Class.xml");
        return Serializer.XmlDeserialize<ClassLayout>(doc.OuterXml);
    }

但是在达到doc.Load线路时,它已经卡住了。我没有得到任何结果。

3 个答案:

答案 0 :(得分:1)

尝试合并路径 - environment.currentdirectory不以&#34; \&#34;

结尾
public static ClassLayout GetClassLayout()
{
    XmlDocument doc = new XmlDocument();
    doc.Load(System.IO.Path.Combine(Environment.CurrentDirectory,  @"Files\Class.xml"));
    return Serializer.XmlDeserialize<ClassLayout>(doc.OuterXml);
}

答案 1 :(得分:1)

首先,您需要确保Environment.CurrentDirectory符合您的想法。如果这是正确的,问题是返回的值很可能在其末尾没有\,因此它可能正在寻找类似C:\WindowsFiles\Class.xml的内容。

创建目录和文件路径的最佳方法是使用Path.Combine,它将处理尾部斜杠:

public static ClassLayout GetClassLayout()
{
    XmlDocument doc = new XmlDocument();
    doc.Load(Path.Combine(Environment.CurrentDirectory, @"Files\Class.xml"));
    return Serializer.XmlDeserialize<ClassLayout>(doc.OuterXml);
}

答案 2 :(得分:0)

您可能会将CurrentDirectory附加到文件。尝试:

doc.Load(Environment.CurrentDirectory + @"\Files\Class.xml");