Вариант 1: HttpClient, если вам не нужно детерминированное уведомление о прогрессе, это то, что вы хотите использовать. Пример.
public async Task<string> MakeWebRequest()
{
HttpClient http = new System.Net.Http.HttpClient();
HttpResponseMessage response = await http.GetAsync("http://www.example.com");
return await response.Content.ReadAsStringAsync();
}
Вариант 2. Когда вам нужны уведомления о прогрессе, вы можете использовать DownloadOperation или BackgroundDownloader . Этот образец на MSDN - хорошее начало.
Вариант 3. Поскольку вы упомянули веб-службу и, если она возвращает XML, вы можете использовать XmlDocument.LoadFromUriAsync , который вернет вам документ XML. Пример
public async void DownloadXMLDocument()
{
Uri uri = new Uri("http://example.com/sample.xml");
XmlDocument xmlDocument = await XmlDocument.LoadFromUriAsync(uri);
//do something with the xmlDocument.
}
При разработке для метро .Net Framework будет ограничен по сравнению с настольной версией. Если вы видите ошибку namespace not found, это обычно происходит из-за этого факта. Эта ссылка в MSDN содержит список пространств имен, доступных для метро.