无法在Silverlight中保存XDocument

时间:2011-12-25 20:29:34

标签: c# .net xml silverlight linq

我想将Xdocument保存到xml文件中,似乎silverlight不接受xdoc.save(string str)的字符串类型,所以我不得不在其中放入一个流,问题是当我放了一个文件流,我得到一个错误,说“尝试访问该方法失败”,并且这里未处理MethodeAccessException是我的代码:

XDocument MainLBItems = XDocument.Load("SampleData/MainLBItems.xml");            
            MainLBItems.Root.Add(new XElement("Item",
                                            new XElement("Title", this.tb_Title.Text),
                                            new XElement("Dscrp", this.tb_Dscrp.Text),
                                            new XElement("Count", "0")));
            FileStream fs = new FileStream("SampleData/MainLBItems.xml", FileMode.Open, FileAccess.Write);
            MainLBItems.Save(fs);

2 个答案:

答案 0 :(得分:0)

我在Windows Phone 7中只使用了Silverlight,但我怀疑同样适用于桌面Silverlight ...你不能像在整个桌面.NET框架中那样直接使用文件。相反,您必须使用isolated storage。例如:

using (var file = IsolatedStorageFile.GetUserStoreForApplication())
{
    using (var stream = file.OpenFile("file.xml", FileMode.Create))
    {
        document.Save(stream);
    }
}

(也可以使用流调整其他代码。)

答案 1 :(得分:0)

您可以将任意文件保存到独立存储(请参阅MSDN for an example),或者您可以打开“另存为”对话框,要求用户访问以写入文件。

从外观上看,您正在从XAP文件或XAP来自的服务器读取XML流。在这两种情况下,你都不能回写那些地方。