WCFDataService Невозможно преобразовать - PullRequest
0 голосов
/ 31 марта 2011

Я создал WCFDataService и у меня есть собственный меторд веб-виджета для проверки пользователя, используя его из приложения wpf.

public static void InitializeService(DataServiceConfiguration config)
{
    config.SetEntitySetAccessRule("*", EntitySetRights.All);
    config.SetServiceOperationAccessRule("ValidateUser", ServiceOperationRights.All);
    config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
    config.UseVerboseErrors = true;
}

[WebGet]
public bool ValidateUser(string UserName, string Password)
{
    return Convert.ToBoolean(MembershipService.ValidateUser(UserName, Password));
}

у клиента следующий код:

public Boolean ValidateUser(string UserName, string Password)
{
    return Convert.ToBoolean(__context.Execute<Boolean>(new Uri(string.Format("{0}ValidateUser?UserName='{1}'&Password='{2}'", __context.BaseUri, UserName, Password))));
}

Я получаю сообщение об ошибке:

Невозможно привести объект типа 'System.Data.Services.Client.QueryOperationResponse`1 [System.Boolean]' к типу 'System.IConvertible'.

Попробовал гуглить, но мало информации об ошибке, может кто-нибудь подскажет мне правильное направление или решения, ссылки, статьи .....

Заранее спасибо.

1 Ответ

1 голос
/ 31 марта 2011

Execute возвращает IEnumerable, поэтому его нельзя преобразовать в bool с помощью Convert.ToBoolean.Вам нужно вызвать .Single (), чтобы получить первый (и единственный) элемент в нем.

...