2012-04-07 50 views
4

我正在嘗試構建一個可從Magento安裝中獲取產品的Metro應用程序。Magento SOAP C#在Visual Studio 11(Metro)中的登錄問題

當我在Visual Studio 2010中的登錄部分正常工作:

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

然而,當我嘗試在Visual Studio 11中的相同的代碼,它不給我登錄選項,而在loginAsync,就像這樣:

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

如果我用這個選項(其中有常規的「登錄」的有效參數),VS11給了我這個錯誤:

Cannot implicitly convert type 'System.Threading.Tasks.Task' to 'string'

任何幫助將不勝感激!謝謝。

回答

2

嘗試使用await修改

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

編輯

它看起來像很多你正在使用被同步異步已經走了的API。異步版本將作爲Task<string>而不是簡單的string回來。每當發生這種情況時,您有2個選項可以獲得stringTask<T>中的任何數據。

  • 對錶達式使用await。這是非阻塞
  • 呼叫.Result上的任務。這是阻止
+0

沒有工作。此外, '任務 sessionId' 沒有工作。 – 2012-04-07 02:20:46

+0

@AlexGorcea你得到了什麼錯誤? – JaredPar 2012-04-07 02:22:07

+0

This: 「'await'操作符只能在異步方法中使用,請考慮使用'async'修飾符標記此方法並將其返回類型更改爲'Task'。 – 2012-04-07 02:23:27