1

我有一个 WCF RIA 服务,其方法返回 IQueryable<>。我想从控制台应用程序中使用 ClannelFactory 访问这些方法。我在客户端上有一个与我的 RIA 服务中的方法匹配的接口。当我运行服务器和客户端应用程序时,我可以看到调用了服务器方法并返回了一个 IQuery<> 对象。问题是在客户端我无法获取服务器发送的数据。我可以看到数据实际上是使用 Fiddler 来的,但我认为数据不能反序列化为 IQueryable。对我来说,接收到的数据类型并不重要。我会很高兴只有一个数组。但是因为服务中的方法返回 IQueryable,所以客户端上的 OperationContract 方法具有相同的类型。所以问题是如何从服务器获取数据,

服务器端:

 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();
4

0 回答 0