Seçenek 1: HttpClient, deterministik ilerleme bildirimine ihtiyacınız yoksa, kullanmak istediğiniz şey budur. Örnek.
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. Seçenek: bildirimleri ilerleme gerektiğinde, DownloadOperation veya BackgroundDownloader kullanabilirsiniz. MSDN'deki bu sample iyi bir başlangıçtır.
Seçenek 3: Web hizmetinden bahsetmiş olduğunuzdan ve XML'i döndürdüğünüzden, size bir XML belgesi döndüren XmlDocument.LoadFromUriAsync'u kullanabilirsiniz. Örnek
public async void DownloadXMLDocument()
{
Uri uri = new Uri("http://example.com/sample.xml");
XmlDocument xmlDocument = await XmlDocument.LoadFromUriAsync(uri);
//do something with the xmlDocument.
}
Metro için geliştirdiğinizde. Net çerçeve, masaüstü sürümüne göre sınırlı olacaktır. İsim alanı bulunamadı hatası görürseniz, genellikle bu gerçeğe bağlıdır. MSDN'deki bu link, metro için kullanılabilen ad sınıfları listesine sahiptir.
32 "windows8" ile "WinRT" demek istiyor musunuz? Normal .NET framework'ü hedefleyen Windows 8 üzerinde kesinlikle iyi çalışması gerekir. WinRT'yi hedefliyorsanız, emin olun: WinRT'nin sunduğu şeyleri kullanmanız gerekir. –
1. Bu bir ad alanı değil, bir sınıf. 2. Evet, eşzamanlı çağrı yapmanın kötü bir uygulamasını teşvik ettiği için WinRT'den yok. Bunun yerine HttpWebRequest sınıfını kullanın. – wizzard0
"Evet, eşzamanlı çağrı yapmanın kötü bir uygulamasını teşvik ettiği için WinRT'den yok." Bu kesinlikle WebClient'in WinRT'de bulunmamasının nedeni DEĞİL, çünkü WebClient Async'in birçok yöntemini kullanıyor. WinRT'den eksik olmasının nedeni başka sebeplerden dolayı olabilir. –