C# 如何从WCF访问异步方法?
这是我的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
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);