如果我有一个包含2个操作的服务合同,是否可以拥有仅具有其中一个操作的客户端服务合同(.NET接口)?更一般地说,是否可以仅在客户端上使用服务操作的子集,甚至不必为其他操作(及其相应的数据协定)生成代码?
答案 0 :(得分:1)
执行此操作的正确方法是创建一个仅包含您希望公开的方法的新OperationContract
,然后将OperationContract
绑定到新端点并将该端点公开给您的客户端。< / p>
答案 1 :(得分:1)
是的,这绝对有可能。既然你提到生成的代码,我猜你在Visual Studio中使用服务引用。如果是这样,您只需编辑生成的接口和类即可省略要排除的操作。但是,每次更新客户端项目中的服务引用时都需要执行此编辑,因此除非预期服务接口不会更改,否则可能不是您希望采用的方法。
无论服务的频率如何变化,更优雅的方法都需要创建自己的适配器,所有服务客户端代码都可以与之交互。