【问题标题】:Getting the XML request from ClientBase<T>从 ClientBase<T> 获取 XML 请求
【发布时间】:2015-08-26 22:41:02
【问题描述】:

我目前正在使用ClientBase 访问网络服务。这可以正常工作,但我需要记录发送到服务的 XML 请求。

我可以看到使用侦听器和其他类似方法可以做到这一点,但我需要在我的代码库中提交它的方法中访问这个 XML 请求。

有什么方法可以支持吗?

【问题讨论】:

    标签: c# .net xml wcf


    【解决方案1】:

    “XML”只有在控制流离开您的方法并进入实际执行调用的 WCF 代码后才会创建(序列化)。因此,如果您理论上能够从代码中获取它,那么您必须在实际调用“之后”获取它。这也是为什么要这样做的原因是implement/register a IClientMessageInspector

    唯一的另一件事是使用 NetDataContractSerializer 或 DataContractSerializer 手动序列化传递给 WCF 调用的参数,其中包括一些不必要的手工劳动。请注意,尽管这只会为您提供有效负载,而不是完整的消息(包括标头等)。

    我真的会选择为此建议的方式(请参阅上面的链接)。

    【讨论】:

      【解决方案2】:

      你可以尝试一些 AOP 编程。如果您将 Unity 用于 DI,您可以尝试 Unity with Interception 或 Interception 单独使用 Intercept 类。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-08
        • 2015-07-19
        • 1970-01-01
        • 2011-11-12
        • 1970-01-01
        • 2019-08-10
        • 2017-11-08
        • 2020-12-09
        相关资源
        最近更新 更多