通过 Web 服务恢复函数并存储在变量中的结果

本文关键字:变量 结果 存储 Web 服务 恢复 函数 通过 | 更新日期: 2023-09-27 18:32:33

我想得到这个方法的结果:布尔身份验证(字符串日志,字符串传递)和此方法e:字符串角色(字符串日志,字符串传递)来测试身份验证这就是我所做的:

private void bntValideAuthen_Click(object sender, RoutedEventArgs e)
{ 
    client.AuthentificationCompleted += client_AuthentificationCompleted;
    client.RoleCompleted += client_RoleCompleted;
      ServiceConsum.Service1Client client = new ServiceConsum.Service1Client();
     string rol=client.RoleAsync(txtLogin.text,txtpass.text);
     bool auth = client.AuthentificationAsync(txtLogin.text,txtpass.text);

    if((auth==true)&&(role=="admin"))
    {
      NavigationContext.Equals(new Uri("/Views/admin/starAdmin.xaml", UriKind.Relative));
    }
    else
    {
      message.BOX("error");
    }
    }

它给出了这个错误:不能将类型"void"隐式转换为"字符串"

通过 Web 服务恢复函数并存储在变量中的结果

以下代码启动异步调用 - 它不返回字符串 - 它是一个 void 方法 - 这是你的错误。

client.RoleAsync(txtLogin.text,txtpass.text)

您将得到结果作为方法 client_RoleCompleted 的参数。您已使用以下代码订阅了角色已完成事件:

client.RoleCompleted += client_RoleCompleted

解决方案是:在第二个事件中添加胎面,例如:

 void client_RoleCompleted(object sender, RoleCompletedEventArgs e) { 
            role = e.Result.ToString();
            Thread.Sleep(1000);

        }