VS2010添加服务引用优于直接ClientBase的优势<>

时间:2011-02-22 19:29:07

标签: wcf visual-studio-2010

我注意到在VS2010中使用“添加服务引用”时会创建大量文件。其中一个文件是Reference.cs,它为服务合同创建了一个ClientBase。

因此,我想知道VS创建的大量额外文件是否有任何优势,或者我可以自己使用ClientBase并跳过“添加服务引用”选项。

我应该注意到,在我的情况下,双方都在我的控制之下。

1 个答案:

答案 0 :(得分:5)

以下是我个人观点中不同方法的利弊概述:

使用Visual Studio生成的服务代理

<强>赞成

  • 开始所需的最小努力
  • 能够在服务合同发生变化时快速更新代理
  • 无法维护自定义代码

<强>缺点

  • 由于通过Rhino Mocks类与WCF基础架构高度耦合,使得消费者难以使用任何流行的.NET隔离框架进行单元测试,例如MoqClientBase<TChannel>
  • 创建了不必要的额外文件

使用WCF渠道API

<强>赞成

  • 由于IChannelFactory<TChannel>接口
  • 提供的解耦,任何隔离框架都具有高可测试性
  • 更多地控制如何调用服务

<强>缺点

  • 需要一些初步的努力才能开始
  • 维护一些自定义代码

总结使用代理提供更少的摩擦消费WCF服务同时放弃一些控制和可测试性。使用渠道API需要更多代码以换取更高程度的灵活性,这非常方便,特别是如果您希望将测试组件与他们与之通信的WCF服务分开进行单元测试。

相关资源: