通过自定义跟踪侦听器一次完成 WCF 请求-响应日志记录

WCF request-response logging via custom Trace Listener at one go

在我的 WCF 客户端应用程序中;

有什么方法可以在 Trace Listener 级别匹配异步请求和响应?

最终使用了 IClientMessageInspector,因为我找不到在 Trace Listener 级别执行此操作的方法。

使用 headers 中的 ID 将请求与响应相关联。

public object BeforeSendRequest(ref Message request, IClientChannel channel)
{            
        var key = request.Headers.MessageId.ToString();

        //Do stuff

        return null;
}
public void AfterReceiveReply(ref Message reply, object correlationState)
{            
        var key = reply.Headers.RelatesTo.ToString();            

        //Do stuff
}