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”隐式转换为“字符串”

任何帮助将不胜感激!谢谢你。

4

1 回答 1

2

尝试使用await修饰符

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

编辑

看起来您使用的许多 API 已从同步变为异步。异步版本回来了,Task<string>而不是简单的string。每当发生这种情况时,您有 2 个选项可用于stringTask<T>.

  • await在表达式上使用。这是非阻塞的
  • 调用.Result任务。这是阻塞
于 2012-04-07T02:03:08.253 回答