2011-04-18 22 views
0

我们的第三方API提供两种不同的Web服务,但具有相同的方法模型。然而,他们只的URI(Web Service的路径,行动路径不同[经营合同]具有不同来源或行为的操作合同Url

所以我决定:使用VS.

  • 编辑

    1. 生成WSDL他们的代码命名空间使用相同的并且是“Common”,而不是使用服务引用,而是使用Reference.cs编辑的代码。

    2. 创建一个新的代理来处理要使用的服务的正确URI参考ence.cs里面)。

    现在,我有一个问题与“Method1”,因为他们有不同的操作名称。有一个例外:

    “服务器不承认 HTTP标头的SOAPAction值: http://www.api.com/service/Method1

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

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

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

    请帮忙,谢谢。

  • 回答

    1

    我结束了直接使用ChannelFactory当面对同样的问题

    在我的实现,我有一个基本接口把所有的常用方法2层的API。然后,我有两个独立的界面 - 每个第三方API版本一个界面 - 从基础界面继承并添加方法和两个实现之间不同的属性。

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

    +0

    感谢您的支持,它确实清除了ChannelFactory是适合此处的。当你说你使用了其中一个子界面时,它是否意味着低于? '接口Base' '接口API1:Base' '接口API2:Base' '的ChannelFactory '' 这是正确的吗?我只是想知道,因为在创建ChannelFactor的实例时,我最终使用了独立合同。 – 2011-04-19 01:30:21

    相关问题