保存到xml文档

时间:2010-11-18 17:13:03

标签: c# linq windows-phone-7 linq-to-xml

我“尝试”以了解如何创建 Windows Phone 7应用程序,并且我想使用以下函数更新/保存xml文件:< / p>

        XDocument xmlDoc = XDocument.Load("myApp.xml");

        xmlDoc.Element("ocd").Add(new XElement("vDetails", new XElement("itemName", this.tb_Name.Text),
            new XElement("Date", System.DateTime.Now.ToString()), new XElement("itemValue", "")));

        xmlDoc.Save("data.xml");

但是xmlDoc.Save行给出了错误:“System.Xml.Linq.XDocument.Save(System.Xml.XmlWriter)”的最佳重载方法匹配包含一些无效参数。

我需要做些什么来纠正这个问题?

2 个答案:

答案 0 :(得分:8)

您需要保存到隔离存储(或其他一些地方)。获取应用程序的独立存储,打开文件流,然后保存到流:

using (var storage = IsolatedStorageFile.GetUserStoreForApplication())
{
    using (Stream stream = storage.CreateFile("data.xml"))
    {
        doc.Save(stream);
    }
}

答案 1 :(得分:1)

Windows Phone开发人员博客深入探讨了应用程序执行模型。

我认为区分应用程序“关闭”和被逻辑删除的应用程序非常重要。

  

应用程序关闭就是这样   用户按下的结果   硬件返回按钮足够的时间   向后浏览页面   你的申请,过去的   应用程序的第一页。

     a时发生

应用程序已停用   不同的应用程序控制   前景 - 例如,一个   来电,发起一个   选择器,或用户按下   Windows按钮。在这两种情况下,你的   应用程序将被停用(不是   关闭)。在我们踏入之前   Deactivated事件的细微之处,   让我们确保大家都明白这一点   在停用时,您的申请   被终止(在结束时)。它的   那简单;你的代码无法运行   背景,因此你的   申请被终止。然而,   与关闭的应用程序不同,   停用的应用程序获取   墓碑。不要混淆,a   逻辑删除应用程序的过程仍然存在   被终止了。但不像封闭的   应用程序,WP运行的地方   系统删除任何痕迹   应用程序,当一个应用程序   停用WP操作系统   存储记录(墓碑)   应用程序的状态。 WP,基本上   操作系统保留了一个墓碑   成为其中一部分的应用程序   手机的应用程序回栈,   这是一个能够实现这一目标的期刊   使用硬件后退按钮来   增强导航功能。

Application Execution Model

至于测试,一个想法可能是重构代码并为各种事件点添加日志记录,如关闭或被逻辑删除等。