2012-02-28 8 views
16

私はHTTP Webサービスを使いたいと思います.WP7用のアプリを既に開発しました。WebClientクラスがWindows 8に存在しません

私はWebClientクラスを使用しますが、Windows 8では使用できません( "エラー:タイプまたは名前空間が見つかりません")。

他に何が使えますか?

私はコードのサンプルを提供できますか?

Microsoftには、名前空間が存在しない場合に役立つサイトがありますか?

+7

"windows8"とは、実際には "WinRT"を意味しますか?これは、通常の.NETフレームワークをターゲットとするWindows 8上では問題なく動作するはずです。 WinRTをターゲットにしている場合は、WinRTが提供するものを使用する必要があります。 –

+2

1.名前空間ではなく、クラスです。 2.はい、WinRTには存在しません。これは、同期呼び出しの悪い習慣を奨励するからです。代わりにHttpWebRequestクラスを使用してください。 – wizzard0

+4

"はい、WinRTには存在しません。これは、同期呼び出しを実行することを奨励しているからです。これは、WebClientにほとんどのメソッドがAsyncバージョンであるため、WebClientがWinRTに存在しない理由ではありません。 WinRTから欠落している理由は他の理由が考えられるためです。 –

答えて

26

オプション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:あなたは、通知を進める必要があるときあなたはDownloadOperationBackgroundDownloaderを使用することができます。 MSDNのsampleはこれが良いスタートです。

オプション3:Webサービスについて言及しているので、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フレームワークはデスクトップ版に比べて制限されます。名前空間が見つからないというエラーが表示された場合は、通常この事実によるものです。 MSDNのlinkには、メトロの名前空間、クラスのリストがあります。

関連する問題