如何从WCF Ria Service方法获取数据,该方法返回IQueryable<>使用ChannelFactory

时间:2013-09-27 14:35:48

标签: wcf wcf-ria-services

我有一个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();

0 个答案:

没有答案