【发布时间】:2016-06-18 10:35:22
【问题描述】:
我正在尝试从 Xamarin Forms 调用 WCF 服务中的简单登录函数。
我已经毫无问题地引用了该服务。
我已经这样定义了客户端对象:
Service1Client client = new Service1Client();
我的服务函数名称是 Login 并返回一个字符串。这是定义:
Public Function Login(ByVal wUser As String, ByVal wPassword As String) As String Implements IService1.Login
Return String.Format("Test")
End Function
当我尝试从 Xamarin Forms ServiceClient 对象调用该函数时,我只能访问 LoginAsync 函数而不是 Login。研究了一下,我发现我必须将 await 与异步函数一起使用。
我试过了,但该行显示错误“Can't use await with void”:
await client.LoginAsync("user", "password");
我做错了什么?
如果我删除 await 语句,WCF 函数将正确执行并返回“Test”字符串,但我不知道如何在 Xamarin Forms 上检索它。
如何检索函数试图返回的字符串?
谢谢。
【问题讨论】:
-
你试过"string value = await client.LoginAsync("user", "password");"
-
是的,我已经尝试过了,但是等待“不能使用 await with void”的错误仍然存在。我不明白这一点,因为我的函数是字符串类型而不是无效的。如果我删除 await 那么错误是“无法从 void 转换为字符串”。
-
LoginAsync 方法的签名是什么?它可能需要一个回调方法而不是使用异步。
标签: c# wcf asynchronous xamarin.forms