如何从WCF服务返回接口?

Mik*_*ike 4 wcf wcf-client

可以说我有一些接口:

public interface IFoo {
  IBar DoesStuff();
}
public interface IBar {
  string Thingo { get; }
}
Run Code Online (Sandbox Code Playgroud)

我在整个代码库中使用此代码.需要将IFoo进程移动到不同的系统上(x64与x32的差异),这是我们使用WFC的原因.我的WCF服务实现了此接口.当我创建"服务引用"时,会创建代理存根,但会更改接口.

public interface IFoo {
   object DoesStuff();
}   
Run Code Online (Sandbox Code Playgroud)

我尝试将IBar/Bar定义为DataService和DataContract,没有区别.有没有办法使用我的界面生成代理代码?

我在想,如果模拟对象可以生成我的界面对象进行测试,那么我是否应该能够获得服务来尊重它?或者做了一些愚蠢和错误的事情?

Sco*_*ein 6

IBar需要具体和DataContract.WCF不是关于分布式对象,而是一种传输数据并使服务处理该数据的方法.您无法在WCF中返回具有行为的对象.