2013-07-13 4 views
1

Это мой сервис WCF с методом signIn(), который просматривает базу данных для пользователя и возвращает ее UserID.Как получить доступ к асинхронным методам из WCF?

[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 App Store, и этот метод - signIn(), он говорит, что этот метод async.

Мой вопрос заключается в том, как записать возвращаемое значение из метода в переменную и использовать его на стороне клиента?

ответ

3

Если вы работаете с приложениями Windows Store, вы хотите ознакомиться с асинхронным программированием и ключевым словом await. Это не относится к WCF.

Использование

var userId = await serviceClient.signIn(userName, password); 
+0

ли мой метод входа в аккаунт() должен возвращать тип Task , а не просто Int? –

+0

Нет. Он должен просто вернуть int. –

+0

Ошибка: оператор ожидания может использоваться только в асинхронном методе –