Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从WCF访问异步方法?_C#_Wcf_Windows 8_Windows Store Apps_Async Await - Fatal编程技术网

C# 如何从WCF访问异步方法?

C# 如何从WCF访问异步方法?,c#,wcf,windows-8,windows-store-apps,async-await,C#,Wcf,Windows 8,Windows Store Apps,Async Await,这是我的WCF服务,方法是signIn(),它在数据库中查找用户并返回其UserID [ServiceContract] public interface IService1 { [OperationContract] int signIn(string username, string password); } 和派生类Service1 public class Service1 : IService1 { public int signIn(string usernam

这是我的WCF服务,方法是
signIn()
,它在数据库中查找用户并返回其
UserID

[ServiceContract]
public interface IService1
{


    [OperationContract]
    int signIn(string username, string password);
}
和派生类Service1

public class Service1 : IService1
{
public int signIn(string username, string password)
    {
        GetHiredDBContext db = new GetHiredDBContext();

        foreach (User user in db.Users)
        {
            if(user.Username==username)
                if (user.Password == password)
                {
                    return user.UserID;
                }
        }
        return -1;
    }
当我将此WCF服务设置为Windows 8应用商店应用程序中的服务引用,并访问此方法-
signIn()
,它表示此方法是
async


我的问题是如何将方法的返回值写入变量,并在客户端使用它

如果您正在使用Windows应用商店应用程序,那么您希望熟悉异步编程和关键字。这不是WCF特有的

使用


my method signIn()是否必须返回类型Task而不仅仅是int?否。它应该只返回int。错误:Wait运算符只能在异步方法中使用OK,因此您的调用方法必须是
async
私有异步bool IsValidUser(用户名、密码)
或其他方法。真的,请阅读我在
wait
上链接的文章。我的理解是,您在Windows应用商店应用程序中执行的大多数操作都是异步的。您应该在解决方案中添加一个答案。你可以从中得到更多的选票。
var userId = await serviceClient.signIn(userName, password);