我制作了以下自定义方法
[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"));
答案 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");
}