c# - WP7 - 错误 'XmlException was unhandled' 尽管检查文件是否存在

标签 c# .net xml xml-parsing windows-phone

我试图从 WP7 中的 XML 文档中读取并遇到了一个我根本没有得到的奇怪错误,当我在重新启动 WP7 模拟器后第一次运行我的程序时,但是如果我运行它在不关闭模拟器的调试中,它给我运行时错误:'XmlException was unhandled Cannot find file 'appdata.xml' in the application xap package.'这很奇怪,因为我先检查文件是否存在:

using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
    if (store.FileExists("appdata.xml"))
    {
        XDocument loadedData = XDocument.Load("appdata.xml"); // <-- runtime error
        //code for parsing xml to variables
    }
}

它进入 if 语句,因此文件应该存在,但 XDocument 出于某种原因不喜欢它,有人有任何想法吗?

这里的进一步引用是我在应用程序中点击按钮时如何保存我的数据,而且如果未调用此函数则不会发生错误:

private void SaveData()
{
    rulesData = new AppData(StartCashRule.Text, LandGoRule.Text, FreeParkingRule.Text, FullCircuitRule.Text, AuctionRule.Text);

    using (var store = IsolatedStorageFile.GetUserStoreForApplication())
    {
        IsolatedStorageFileStream ifStream = new IsolatedStorageFileStream("appdata.xml", FileMode.OpenOrCreate, store);

        using (XmlWriter writer = XmlWriter.Create(ifStream))
        {
            writer.WriteStartDocument();
            writer.WriteStartElement("myData");

            writer.WriteElementString("Starting_Cash", rulesData.myStartingCash);
            writer.WriteElementString("Land_on_Go_Data", rulesData.myLandOnGo);
            writer.WriteElementString("Free_Parking_Data", rulesData.myFreeParking);
            writer.WriteElementString("Full_Circuit_Data", rulesData.myFullCircuit);
            writer.WriteElementString("Auction_Data", rulesData.myAuction);

            writer.WriteEndElement();
            writer.WriteEndDocument();
        }

        ifStream.Close();
    }
}

谢谢 - 瑞安

最佳答案

您正在传递给 XDocument.Load 名称“appdata.xml”,而没有引用文件实际存在的 IsolatedStorage 存储。

你应该这样写

XDocument loadedData = XDocument.Load(store.OpenFile("appdata.xml", FileMode.Open));

关于c# - WP7 - 错误 'XmlException was unhandled' 尽管检查文件是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13787819/

相关文章:

c# - 关于 TranslateTransform 和 RenderTransformOrigin

c# - 使用 Entity Framework 将实体映射到数据库

sql-server - 从 sql server 中的 XML 文件中提取 XML 数据时出错

xml - 如何检查属性是否驻留在元素内?

c# - "The element is missing.."试图用 <element ref =/> 生成类

C# TCP Async EndReceive() 仅在 Windows XP 32 位上抛出 InvalidOperationException

c# - EF Core开发过程中如何处理数据库变化?

c# - 错误 "; expected"lambda 表达式

c# - 查找2个日期之间的所有季度

java - 有什么好工具可以轻松帮助我编写/维护 WSDL 文件吗?