2013-05-08 4 views
1

Я пытаюсь получить ответ от метода WCF от клиента. Когда я пытаюсь выполнить недействительные методы, они работают нормально. Например:Вызов буферизованного метода данных WCF

Uri u = new Uri(string.Format(LogIn.ctx.BaseUri + "/CreateRole?name='{0}'", 
TextBox1.Text), UriKind.RelativeOrAbsolute); 

LogIn.ctx.Execute(u, "GET"); 

Теперь я хочу вызвать метод, который возвращает логическое значение, и это значение будет использоваться. Вот метод, который я хочу, чтобы позвонить и получить ее возвращаемое значение:

[WebGet] 
public bool Controler(string role, string user) 
{ 
    if (Roles.IsUserInRole(user, role)) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 
+1

ли второй метод не работает? Если нет, можете ли вы добавить какое-то объяснение к своему ответу о том, какое неправильное поведение происходит? Я предполагаю, что клиент не отправляет данные обратно? – Ren

ответ

0

Вместо LogIn.ctx.Execute(u, "GET"), попробуйте следующее:

IEnumerable<bool> result = LogIn.ctx.Execute<bool>(u); 
bool answer = result.Single(); 
+0

Я пробовал это, но он бросает DataServiceQueryException, и когда я проверяю детали исключения, это «ссылка на нулевой ссылочный объект, не установленная на экземпляр объекта», похоже, что вызов не получил никакого результата. Я изменил метод в сервис и поставить простой тест, чтобы вернуть false, но никак! – user2233979

+0

Это сработало, мне пришлось перестроить/обновить сервисную ссылку AGAIN. благодаря – user2233979

Смежные вопросы