调用WCF数据服务自定义方法

时间:2013-06-02 12:09:27

标签: wcf-data-services

我制作了以下自定义方法

[WebGet]
public string GetAllCars()
{

    return "hello";

}

我从浏览器中使用此功能,它工作正常 但是当我通过服务引用Execute方法通过Web应用程序进行消费时 它运行正常,但结果无法通过快速观察,queryoperationresponse有,但不知道如何从结果中获取字符串

这是代码:

ServiceReference1.SampleDBEntities uricontext = new ServiceReference1.SampleDBEntities(new Uri("http://localhost/website2/wcfservice1.svc"));
    uricontext.Credentials = System.Net.CredentialCache.DefaultCredentials;
    var proxycontext = uricontext.Execute<String>(new Uri("http://localhost/website2/wcfdataservice1.svc/GetAllCars"));

2 个答案:

答案 0 :(得分:0)

为了获得结果“Strings”,我们需要“foreach”结果变量,如下所示:

 ServiceReference1.SampleDBEntities uricontext = new ServiceReference1.SampleDBEntities(new Uri("http://localhost/website2/wcfservice1.svc"));
        uricontext.Credentials = System.Net.CredentialCache.DefaultCredentials;
        var proxycontext = uricontext.Execute<String>(new Uri("http://localhost/website2/wcfdataservice1.svc/GetAllCars"));
      //  var s = proxycontext.ToString();
        foreach (var r in proxycontext)
        {
            Response.Write(r.ToString());
        } 

有效!现在问题解决了。

答案 1 :(得分:0)

要从WCF数据服务代理获取标量值,最好在结果上调用FirstOrDefault();

    private T ExecuteScalar<T>(Uri uri)
    {
        return Execute<T>(uri).FirstOrDefault();
    }

<强>用法:

public string GetAllCars()
{
    return ExecuteScalar<string>(
        "http://localhost/website2/wcfdataservice1.svc/GetAllCars");
}