Я просто обновил приложение 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)
Какие-либо предложения? Что я делаю неправильно?
Сначала используйте 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
.
Async
, мы движемся к адаптивным моделям пользовательского интерфейса
SO
выглядит схожей по природе. Stackoverflow.com/questions/9650232/…