从WCF服务获取所有数据

时间:2011-11-29 11:29:03

标签: asp.net wcf

我正在使用以下代码来获取页面WCF服务的所有页面:

 var ent = new DataSource(new Uri("http://api.abc.com/Service.svc"));

 ent.Credentials = new NetworkCredential("username", "pass");

DataServiceCollection<Rentals> rentals = new DataServiceCollection<Rentals>(ent.Rentals);
while (rentals.Continuation != null)
{
   rentals.Load(ent.Execute<Rentals>(rentals.Continuation));
}

foreach (var r in rentals)
{
   Response.Write(r.ListingID + "<br />");
}

但是我收到了这个错误:

  

尝试跟踪实体或复杂类型失败,因为实体或复杂类型'NorthwindService.ServiceReference1.Rentals'   没有实现INotifyPropertyChanged接口。

2 个答案:

答案 0 :(得分:3)

我使用NorthwindClient WPF应用程序时遇到了相同的症状。问题似乎是,即使应用了后来的.NET 3.5 ADO.NET Data Services patch KB982306,DataSvcUtil.exe仍然不会生成INotifyPropertyChanged接口。诀窍似乎是你需要来自后期.NET 4.0 version的DataSvcUtil.exe(4.0.30319.17929)。安装.NET 4.0之后,您可以按照Arun Rana链接的指令手动执行DataSvcUtil,然后将生成的.cs文件复制到相应的ServiceReferences子目录中,修复命名空间以匹配您之前自动生成的版本。

答案 1 :(得分:0)

我认为您可能无法启用绑定接口的代码生成。根据此链接,这将在步骤的第2步中介绍  http://blogs.msdn.com/b/astoriateam/archive/2009/09/01/introduction-to-data-binding-in-ctp2.aspx。 尝试按照步骤2中的说明设置环境变量,然后右键单击服务引用并选择“更新服务引用...”