Загрузка локального XML-файла в Windows Phone 7 (WP7)
Я пытаюсь загрузить файл XML, который находится в моем решении Windows Phone 7. Я хотел бы знать, как правильно включить файл в проект, а затем ссылаться на него с помощью кода. Мой текущий код дает мне ошибку
NotSupportedException "Исключение произошло во время запроса WebClient."
вот заглушка моего кода WebClient
WebClient workbenchAdConfigRequest = new WebClient();
workbenchAdConfigRequest.OpenReadCompleted += new OpenReadCompletedEventHandler(workbenchAdConfigRequest_OpenReadCompleted);
workbenchAdConfigRequest.OpenReadAsync(new Uri("/SampleData/SampleData.xml", UriKind.Relative));
и обработчик события
private void workbenchAdConfigRequest_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
try
{
XElement xml = XElement.Load(e.Result);
}
catch
{
//return
}
}
в файле /SampleData/SampleData.xml я установил свойства
Действие построения: встроенное справочное копирование в выходной каталог: не копировать пользовательский инструмент: MSBuild: компилировать
Можете ли вы загрузить локальный файл из "пути к файлу" приложения?
3 ответа
Вы также можете установить "Build Action" в "Content" в свойствах вашего XML-файла, а затем в коде:
using System.Xml.Linq;
......
XElement appDataXml;
StreamResourceInfo xml = Application.GetResourceStream(new Uri("yourxmlfilename.xml", UriKind.Relative));
appDataXml = XElement.Load(xml.Stream);
Вот как можно загрузить файл XML:
Установите "Build action" в "Resource" в свойствах вашего XML-файла, затем в коде:
using System.Xml.Linq;
......
XElement appDataXml;
StreamResourceInfo xml = Application.GetResourceStream(new Uri("/yourprojectname;component/yourxmlfilename.xml", UriKind.Relative));
appDataXml = XElement.Load(xml.Stream);
Вот рабочий проект, который я разместил на MSDN, и который выполняет только то, что хранит XML в XAP и загружает его с помощью XDocument/LINQ, связывая результат с ListBox.