1

IQueryable<> を返すメソッドを持つ WCF RIA サービスがあります。コンソール アプリケーションから 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