保存到xml文档

我正在“ 试图 ”弄清楚如何创建Windows Phone 7应用程序 ,我想用以下函数更新/保存xml文件:

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)”的最佳重载方法匹配具有一些无效参数。

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

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

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

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

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

应用程序关闭只是用户按下硬件后退按钮足够的时间来向后浏览应用程序页面的结果,超过应用程序的第一页。

当其他应用程序控制前台时会发生应用程序停用 – 例如,来电,启动选择器或用户按下Windows按钮。 在这两种情况下,您的应用程序都将被停用(未关闭)。 在我们深入了解Deactivated事件的细微之处之前,让我们确保大家都知道在Deactivation时,您的应用程序会被终止(最后)。 就这么简单; 您的代码无法在后台运行,因此您的应用程序将被终止。 但是,与关闭的应用程序不同,已停用的应用程序会被逻辑删除。 不要混淆,逻辑删除的应用程序的进程仍然会被终止。 但与封闭的应用程序不同,WP操作系统会删除应用程序的任何跟踪,当应用程序停用时,WP操作系统会存储应用程序状态的记录(逻辑删除)。 基本上,WP操作系统保留了应用程序的墓碑,该应用程序成为手机应用程序堆栈的一部分,这是一个日志,可以使用硬件后退按钮来增强导航function。

应用程序执行模型

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