Silverlight 4.0 保存XDocument问题

Silverlight 4.0 保存XDocument问题,silverlight-4.0,linq-to-xml,Silverlight 4.0,Linq To Xml,我正在加载我的文档,如下所示: WebClient client = new WebClient(); client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted); client.OpenReadAsync(new Uri("Rolls.xml", UriKind.Relative)); 然后在阅读完成后: XDocument doc = XDo

我正在加载我的文档,如下所示:

WebClient client = new WebClient();
        client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted);
        client.OpenReadAsync(new Uri("Rolls.xml", UriKind.Relative));
然后在阅读完成后:

 XDocument doc = XDocument.Load(XmlReader.Create(e.Result));

       using (Stream stream = e.Result)
       {
           {
               foreach (var roll in _rollsToAddStudentTo)
               {
                   doc.Element("rolls").Add(new XElement("rollid", roll));
               }
               doc.Save(stream);
           }

       }
问题是当它到达保存时,我得到了错误

“不支持指定的方法。”

非常感谢您的帮助。 干杯

谢谢杰霍夫

那么,如何将文档合并到该异步方法中呢

foreach (var roll in _rollsToAddStudentTo)
               {
                   doc.Element("rolls").Add(new XElement("rollid", roll));
               }

               WebClient client = new WebClient();
               client.OpenWriteCompleted += new OpenWriteCompletedEventHandler(client_OpenWriteCompleted);
               client.OpenWriteAsync(new Uri("Rolls.xml", UriKind.Relative));
我已通过将逻辑更改为以下方式解决了此问题

 using (IsolatedStorageFile isoStore =
           IsolatedStorageFile.GetUserStoreForApplication())
            {
                // Create new file
                using (IsolatedStorageFileStream isoStream =
                    new IsolatedStorageFileStream("Rolls.xml",
                        FileMode.Create, isoStore))
                {
                    // Write to the Isolated Storage for the user.
                    XmlWriterSettings settings = new XmlWriterSettings();
                    settings.Indent = true;
                    // Create an XmlWriter.
                    using (XmlWriter writer = XmlWriter.Create(isoStream, settings))
                    {
                        writer.WriteStartDocument();
                        writer.WriteStartElement("Rolls");

                        foreach (var roll in _rollsToAddStudentTo)
                        {
                            writer.WriteStartElement("roll");
                            writer.WriteAttributeString("rollid", roll);
                            writer.WriteEndElement();
                        }

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

您试图保存XDocument的流是
只读的
。因为它是作为参数传递给注册到事件
OpenReadCompleted
的方法
client\u OpenReadCompleted
的流

如果要通过WebClient将XDocument保存回来,需要调用-methods之一