【问题标题】:Extending a WCF Service Reference to a WSDL to implement IEnlistmentNotification将 WCF 服务引用扩展到 WSDL 以实现 IEnlistmentNotification
【发布时间】:2009-10-12 20:27:47
【问题描述】:

我有一个 WCF 服务引用,它指向信用卡处理 Web 服务 (Cyber​​source) 的 WSDL 文件。我想以某种方式扩展生成的服务引用客户端以实现 IEnlistmentNotification 以支持事务处理。

我熟悉实现 IEnlistmentNotification 接口,但我找不到一个好的扩展点来捕获任何时候调用服务方法以便我可以维护事务登记的状态。

例如,Cyber​​source 的 WSDL 在这里:

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

它只有一种方法“runTransaction”。理想情况下,我会拦截对此方法的调用,查看有效负载内容,确定登记操作,让调用继续,然后检查结果以记录回滚事务所需的信息。我可能会在返回结果中捕获“交易参考号”。然后在回滚时执行取消/信用/等。通过将其作为 IEnlistmentNotification 接口的一部分,我可以让其他人非常简单地将此类用作事务的一部分。

我知道我可以为这个类编写一个包装器或工厂,这就是我现在要继续的方式。但是,我希望 WCF 有一个扩展点,我可以使用它来拦截方法调用 - 我可以直接在生成的客户端类的部分版本上执行。

我希望生成的部分类具有用于点击或事件的部分方法调用,但它没有任何类型(除非我遗漏了一些东西......)。

【问题讨论】:

    标签: c# .net wcf transactions


    【解决方案1】:

    WCF 确实有一个扩展点,它允许您连接到客户端以检查传入和传入的数据,它是 IParameterInspector,我不久前写过关于它们的 here。不确定它是否是您需要的,但可能有用。

    【讨论】:

      猜你喜欢
      • 2011-02-24
      • 1970-01-01
      • 1970-01-01
      • 2011-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-30
      • 1970-01-01
      相关资源
      最近更新 更多