Синтаксис лямбда-действия в вызове WCF - PullRequest
1 голос
/ 16 декабря 2011

У меня есть интерфейс для службы WCF

public interface IAuthenticationService
{
    void Authenticate(Action<bool, Exception> callback, string UserName,string Password);
}

У меня есть реализация

public class AuthenticationService : IAuthenticationService
{
    public void Authenticate(Action<bool, Exception> callback, string Name, string Password)
    {
        MvcWebAuthenticate.AuthenticationServiceClient authService = new MvcWebAuthenticate.AuthenticationServiceClient();
        authService.CookieContainer = AuthCookie.CookieJar;
        authService.LoginCompleted += (s, e) =>
        {
            if (e.Result == false)
            {
                callback(false, e.Error);
            }
            else
            {
                callback(true, null);
            }
        };
        authService.LoginAsync(Name, Password, "", true);
    }
}

С моей модели представления я хочу вызвать службу выше и передать имя пользователя и пароль, ноЯ не понимаю, как написать лямбда-выражение, чтобы передать параметры и получить «обратный вызов».

Если бы у меня не было UserName и пароля, я мог бы написать этот код:

_dataService.Authenticate(
(authenticated, error) =>
{
if (error != null)
{     }
});

Но как этого добиться, когда мне нужно передать параметры?

Спасибо

1 Ответ

1 голос
/ 16 декабря 2011

Если я не понимаю проблему, вы можете просто сделать это:

    _dataService.Authenticate((authenticated, error) =>
    {
        if (error != null)
        {
        }
    }, userName, password);
...