我有一個用於信用卡處理Web服務(Cybersource)的WSDL文件的WCF服務引用。我想以某種方式擴展生成的服務引用客戶端以實現IEnlistmentNotification以支持事務處理。將WCF服務引用擴展到WSDL以實現IEnlistmentNotification
我很熟悉IEnlistmentNotification接口的實現,但是我無法找到一個很好的擴展點來隨時調用服務方法,這樣我就可以維護事務登記的狀態。
例如,對於與CyberSource的WSDL是在這裏:
https://ics2wstest.ic3.com/commerce/1.x/transactionProcessor/CyberSourceTransaction_1.48.wsdl
它只有一個方法 「runTransaction」。理想情況下,我會攔截對此方法的調用,查看負載內容,確定徵募行爲,讓調用繼續,然後檢查結果以記錄回滾事務所需的信息。我可能會在返回結果中捕獲「交易參考號」。然後在回滾上做一個取消/信用/等。通過將其作爲IEnlistmentNotification接口的一部分,我可以使其他人使用這個類作爲事務的一部分變得非常簡單。
我知道我可以爲班級編寫包裝或工廠,這就是我現在要做的。但是,我期望WCF有一個擴展點,可以用來攔截方法調用 - 我可以直接在生成的客戶端類的部分版本上執行。
我期望生成的部分類具有部分方法調用,用於點擊或事件,但它沒有任何類型(除非我錯過了某些東西......)。