2011-04-18 23 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

    相關問題