不同来源或行动URL的经营合同

时间:2011-04-18 08:54:45

标签: wcf action contract operation operationcontract

我们的第三方API提供两种不同的Web服务,但具有相同的方法和模型。然而,他们只在URI上有所不同(Web服务路径,行动路径[运营合同]。

所以我决定:

  1. 使用VS。

  2. 从wsdl生成代码
  3. 编辑命名空间以使用相同的“Common”而不使用服务引用,而不是使用Reference.cs编辑的代码。

  4. 创建一个新代理,处理要使用的服务的正确URI(将Reference.cs包装在其中)。

  5. 现在,我遇到了“Method1”的问题,因为它们有不同的动作名称。有一个例外:

      

    “服务器无法识别其值   HTTP标头SOAPAction:   http://www.api.com/service/Method1

    我只是注意到正确的操作名称是:http://www.api.com/service1/Method1

    现在的问题是,是否有任何配置或行为可用于更正每项服务的每种方法的操作名称?

    或者只要他们继续为API的每个实现添加合同,我还应该继续为每个实现添加合同,并且只为此使用ChannelFactory?

    请帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

当遇到同样的问题时,我最终直接使用了ChannelFactory

在我的实现中,我有一个基本接口,它具有2个API的所有常用方法。然后我有两个单独的接口 - 每个第三方API版本一个 - 从基接口继承并添加两个实现之间不同的方法和[OperationContract]属性。

当实例化ChannelFactory<>时,我使用了其中一个子接口。帮助保持消费者代码的清洁和可维护性