XmlDocument не может найти указанный файл

1

Я просто обновил приложение Windows Phone 8.0 Silverlight до приложения Windows Phone 8.1 Runtime. К сожалению, мне нужно понизить это приложение до проекта 8.1 SL, поскольку Windows Runtime не поддерживает Google Admob.

В стороне, в моем проекте 8.1 RT, я использую следующий код для извлечения XML-фида:

private async void GetData()
{
    XmlDocument regenthetinXML = await XmlDocument.LoadFromUriAsync(new Uri("http://regenthet.in/data/regenthetin.xml", UriKind.Absolute));
}

Класс XmlDocument поддерживается на обеих платформах, но когда я использую точно такой же код в моем проекте Windows Phone 8.1 SL, я получаю исключения, подобные этому:

An exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.ni.dll but was not handled in user code

Additional information: The system cannot find the file specified. (Exception from HRESULT: 0x80070002)

Какие-либо предложения? Что я делаю неправильно?

  • 0
    Взгляните здесь на эту предыдущую публикацию SO выглядит схожей по природе. Stackoverflow.com/questions/9650232/…
Теги:
silverlight
windows-runtime
windows-phone-8

1 ответ

0

Сначала используйте WebClient для извлечения строки.

string xmlStr;
string m_strFilePath = "http://regenthet.in/data/regenthetin.xml";
using(var wc = new WebClient())
{
    xmlStr = wc.DownloadString(m_strFilePath);
}
var xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlStr);

На мобильных устройствах, если у вас нет DownloadString, используйте DownloadStringAsync с дополнительным обработчиком событий для DownloadStringCompleted.

  • 0
    Спасибо за ваш ответ. Я знаю, что вы можете использовать класс WebClient для получения файлов данных и т. Д., Но почему невозможно извлечь внешние файлы данных на платформе Silverlight способом, описанным выше. Это тот же класс XmlDocument, как я могу заметить разницу в функциональности между двумя платформами?
  • 0
    Код работает на вас? Да, что касается различий в функциональности между двумя платформами, в настольных компьютерах есть несколько методов, которых нет на телефоне (например, криптография). Может быть, навязывая нам Async , мы движемся к адаптивным моделям пользовательского интерфейса

Ещё вопросы

Сообщество Overcoder
Наверх
Меню