我有一个WCF RIA服务,其方法返回IQueryable<&gt ;.我想从一个使用ClannelFactory访问这个方法 控制台应用。我在客户端上有一个与我的RIA服务中的方法匹配的接口。当我运行服务器和 客户端应用程序我可以看到调用服务器方法和IQuery<>返回对象。问题在于 客户端我无法获取服务器发送的数据。我可以看到数据实际上来自使用Fiddler,但我认为数据不可能 反序列化为IQueryable。 对我来说,收到的数据类型无关紧要。我会对一个阵列感到满意。但因为方法在 service返回IQueryable客户端上的OperationContract方法具有相同的类型。 所以问题是如何从服务器获取数据,而不更改服务器端的返回类型(IQueryable)?
服务器端:
public IQueryable<Customers> GetCustomers()
{
List<Customers> customersList = new List<Customers>();
customersList.Add(new Customer())
...
return customersList.AsQueryable();
}
客户方:
[ServiceContract]
public interface CustoemrsService
{
[OperationContract]
IQueryable<Customers> GetCustomers();
}
ChannelFactory代码:
var endpointAddress = new EndpointAddress(_endpointAddress);
var channelFactory = new ChannelFactory<VfxSystemDomainServiceSoap>(new BasicHttpBinding());
var channel = channelFactory.CreateChannel(endpointAddress);
IQueryable<Customers> customersCollection = channel.GetVfxfopenQuery();