基本上,我在我的手机应用程序中使用WCF调用来检索密码,但是当我想要它时它不会触发,而且我不确定在哪里拨打电话。
基本上,我希望应用程序像这样调用代码
Client.GetPassWordByNameAsync(user);
Client.GetPassWordByNameCompleted += new EventHandler<GetPassWordByNameCompletedEventArgs>(Client_GetPassWordByNameCompleted);
if(EnteredPassword == password)
{
isAuthenticated = true;
}
当用户按下登录按钮时,它应该调用服务,获取密码,然后比较,它只是跳过代码并返回null。
这是完成的方法
void Client_GetPassWordByNameCompleted(object sender, GetPassWordByNameCompletedEventArgs e)
{
if (e.Error == null)
{
}
else
{
password = e.Result;
}
}
非常感谢
答案 0 :(得分:1)
看一下你的代码,我一方面看到你在调用方法之后将其放入GetPassWordByNameCompleted事件中。另一方面,您不要等到获得比较返回值的响应。以下代码应该有效:
Client.GetPassWordByNameCompleted += ((s, e) =>
{
if (e.Error == null)
{
}
else
{
password = e.Result;
if(EnteredPassword == password)
{
isAuthenticated = true;
}
}
});
Client.GetPassWordByNameAsync(user);
或者如果您希望在不同的方法中使用事件处理程序,请首先订阅事件:
Client.GetPassWordByNameCompleted += new EventHandler<GetPassWordByNameCompletedEventArgs>(Client_GetPassWordByNameCompleted);
Client.GetPassWordByNameAsync(user);
一旦你获得了结果,你可以做任何你想要的结果:
void Client_GetPassWordByNameCompleted(object sender, GetPassWordByNameCompletedEventArgs e)
{
if (e.Error == null)
{
}
else
{
password = e.Result;
if(EnteredPassword == password)
{
isAuthenticated = true;
}
}
}