4

Magento インストールから製品を取得できる Metro アプリを構築しようとしています。

Visual Studio 2010 でログイン部分に到達すると、正常に動作します。

string sessionId = proxy.login("user", "pass");

ただし、Visual Studio 11 で同じコードを試してみると、loginAsync ではなく、次のようにログイン オプションが表示されません。

string sessionId = proxy.loginAsync("user", "pass");

このオプション (通常の「ログイン」の有効なパラメーターを持つ) を使用すると、VS11 で次のエラーが表示されます。

タイプ 'System.Threading.Tasks.Task' を 'string' に暗黙的に変換することはできません

どんな助けでも大歓迎です!ありがとうございました。

4

1 に答える 1

2

await修飾子を使ってみる

loginResponse sessionId = await proxy.loginAsync("user", "pass");

編集

使用している多くの API が同期から非同期に移行したようです。非同期バージョンはTask<string>、単に ではなくとして戻ってきていstringます。それが起こるたびに、 からstringデータを取得する方法について 2 つのオプションがありますTask<T>

  • 式で使用awaitします。これはノンブロッキングです
  • タスクを呼び出し.Resultます。これはブロックしています
于 2012-04-07T02:03:08.253 に答える