【问题标题】:Subset of service operations on the client in WCFWCF 中客户端上的服务操作子集
【发布时间】:2009-12-07 12:58:11
【问题描述】:

如果我有一个包含 2 个操作的服务合同,是否可以有一个只有其中一个操作的客户端服务合同(.NET 接口)?更一般地说,是否可以只在客户端使用服务操作的子集,甚至不必为其他操作(及其相应的数据合约)生成代码?

【问题讨论】:

    标签: .net wcf


    【解决方案1】:

    执行此操作的正确方法是创建一个新的 OperationContract,其中仅包含您希望公开的方法,然后将该 OperationContract 绑定到新端点并将该端点公开给您的客户端。

    【讨论】:

      【解决方案2】:

      是的,这绝对是可能的。由于您提到生成的代码,我猜您正在使用 Visual Studio 中的服务引用。如果是这样,您可以简单地编辑生成的接口和类以省略您希望排除的操作。但是,每次更新客户端项目中的服务引用时,您都需要执行此编辑,因此除非预计服务接口不会更改,否则您可能不希望采用这种方法。

      无论服务更改的频率如何,一种更优雅的方法是创建您自己的适配器,您的所有服务客户端代码都可以与之交互。

      【讨论】:

      • 我有自己的客户端代码生成器(类似于 SvcUtil)。我将在生成服务参考时添加一个选项以排除服务合同的某些操作。非常感谢您这么快的回复。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多