2009-10-12 64 views
0

我有一個用於信用卡處理Web服務(Cyber​​source)的WSDL文件的WCF服務引用。我想以某種方式擴展生成的服務引用客戶端以實現IEnlistmentNotification以支持事務處理。將WCF服務引用擴展到WSDL以實現IEnlistmentNotification

我很熟悉IEnlistmentNotification接口的實現,但是我無法找到一個很好的擴展點來隨時調用服務方法,這樣我就可以維護事務登記的狀態。

例如,對於與Cyber​​Source的WSDL是在這裏:

https://ics2wstest.ic3.com/commerce/1.x/transactionProcessor/CyberSourceTransaction_1.48.wsdl 

它只有一個方法 「runTransaction」。理想情況下,我會攔截對此方法的調用,查看負載內容,確定徵募行爲,讓調用繼續,然後檢查結果以記錄回滾事務所需的信息。我可能會在返回結果中捕獲「交易參考號」。然後在回滾上做一個取消/信用/等。通過將其作爲IEnlistmentNotification接口的一部分,我可以使其他人使用這個類作爲事務的一部分變得非常簡單。

我知道我可以爲班級編寫包裝或工廠,這就是我現在要做的。但是,我期望WCF有一個擴展點,可以用來攔截方法調用 - 我可以直接在生成的客戶端類的部分版本上執行。

我期望生成的部分類具有部分方法調用,用於點擊或事件,但它沒有任何類型(除非我錯過了某些東西......)。

回答

1

WCF確實有一個擴展點,它允許你掛接到客戶端來檢查數據出來,它的IParameterInspector,我前一陣子寫了關於他們here。不知道它是否是你需要的,但可能有用。