System.NotSupportedException XDocument.Save - PullRequest
0 голосов
/ 04 августа 2011

У меня есть XML-файл в приложении Silverlight, который содержит настройки приложения и будет редактироваться во время выполнения.До сих пор мне удавалось нормально десериализоваться в приложении, но я не могу сохранить какие-либо изменения, внесенные в XDocument.Вот код, который я использую.

private XElement _targetRoot;
private XDocument _doc;
private Stream _stream;

private void LoadXmlFile()
{
  WebClient xmlClient = new WebClient();
  xmlClient.OpenReadCompleted += XMLFileLoaded;
  xmlClient.OpenReadAsync(new Uri(_fileName, UriKind.Relative));
}

private void XMLFileLoaded(object sender, OpenReadCompletedEventArgs e)
{
  if (e.Error != null)
  {
    return;
  }
    _stream = e.Result;
    _doc = XDocument.Load(_stream);
    deserializeScenarioList(_doc.Root.Element("scenes"));
}

Затем каждый раз, когда я пытаюсь удалить элементы из узла, а затем сохранять через

_doc.save(_stream) 

, я получаю исключение System.NotSupportedException.

1 Ответ

1 голос
/ 04 августа 2011

Поток - это односторонний поток, в данном случае поток с сервера клиенту (Silverlight).

Чтобы сохранить изменения на сервере, веб-приложение будет иметьвыставить конечную точку, которую может вызвать элемент управления Silverlight для передачи файла обратно.Простой способ сделать это, если добавить веб-сервис ASMX в веб-приложение (конечная точка WCF и конечные точки REST также возможны).

...