通过服务引用调用Odata服务返回null

时间:2013-11-19 11:27:00

标签: c# .net wcf odata wcf-data-services

我正在使用工作样本Odata服务http://services.odata.org/v3/(S(ttgz0nndpwaj2eahro3jq0xt))/odata/odata.svc/

我执行了以下步骤: 创建控制台应用程序 - >添加服务参考 - >把URL - >去 - >然后我看到了所有实体(如产品供应商等)的服务 - >按确定并输入以下代码。假设我想获得产品数据,我应该怎么做?

我使用以下代码获取数据,但没有成功,任何想法? (我想我应该调用已生成的服务代理,但我不确定如何......)

另外一个问题:假设该服务具有基本身份验证,我需要提供用户名和密码,我该怎么做?

OdataService.Product Client = new OdataService.Product();



// Query the weather information.
var Output = from ThisData
             in Client.Products
             select ThisData;

Console.WriteLine(Output.ToString());
Console.ReadLine();

这是网址http://services.odata.org/v3/(S(ttgz0nndpwaj2eahro3jq0xt))/odata/odata.svc/Products

1 个答案:

答案 0 :(得分:1)

您尝试创建产品的实例而不是服务代理的实例。您可以创建OdataService的实例,并且必须传入服务的Url。这应该有效:

var service = new OdataService(new Uri("http://services.odata.org/v3/(S(ttgz0nndpwaj2eahro3jq0xt))/odata/odata.svc"));
service.Credentials = CredentialCache.DefaultNetworkCredentials; // Set your credentials here if you need to
var products = service.Products.ToList(); // Gives a list of products