【问题标题】:Call a WCF Data service boolean method调用 WCF 数据服务布尔方法
【发布时间】:2013-05-08 10:54:06
【问题描述】:

我正在尝试从客户端接收来自 WCF 方法的答案。当我尝试执行 void 方法时,它们工作正常。例如:

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;
    }
}

【问题讨论】:

  • 第二种方法不行吗?如果没有,您能否在您的答案中添加一些解释,说明正在发生什么不正确的行为?我猜客户端没有发回数据?

标签: asp.net wcf wcf-data-services odata


【解决方案1】:

不要使用LogIn.ctx.Execute(u, "GET"),试试这个:

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

【讨论】:

  • 我试过了,但它抛出了 DataServiceQueryException,当我检查异常的详细信息时,有一个“未设置为对象实例的空引用对象引用”,看起来调用没有收到任何结果..我'已经更改了服务中的方法并进行了简单的测试以返回false但没有办法!
  • 它成功了,我不得不再次重建/更新服务参考。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-21
  • 2019-09-11
  • 2016-01-05
  • 1970-01-01
相关资源
最近更新 更多