WCF数据服务的客户端通道工厂

5 wcf-data-services

我讨厌使用服务引用有很多不同的原因,而是使用接口和System.ServiceModel.ChannelFactory

我希望能够在连接到WCF数据服务时使用类似的东西.

我的意思是当我创建DataService端点时,它只是DataService,为什么我不能在创建客户端时创建DataServiceContext并且可以访问MyDataService中的所有IQueryables.

例如

共同

public interface IMyDataService
{
  public IQueryable<Foo> Foos {get;set;}
  public IQueryable<OtherFoo> OtherFoos {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

服务器

public class MyDataService : IMyDataService
{
  public IQueryable<Foo> Foos {get;set;}
  public IQueryable<OtherFoo> OtherFoos {get;set;}
}
public class DataService : DataService<MyDataService>
{
}
Run Code Online (Sandbox Code Playgroud)

客户

var context = new DataServiceContext<IMyDataService>();
var foo = context.Foos.First(f=>f.Id = 5);
var otherFoos = contact.OtherFoos.Where(of=>of.width > 6);
Run Code Online (Sandbox Code Playgroud)

编辑:我有一个解决方案,我创建了一个IMyDataService的代理类,但是我的理解是,这在服务器上会很难.任何人都知道使用此处详述的方法创建代理对性能的影响:http://www.codeproject.com/KB/cs/dynamicproxy.aspx