记录WCF soap消息参数和方法名称

本文关键字:方法 参数 WCF soap 消息 记录 | 更新日期: 2023-09-27 18:19:52

我正在使用Log4net,并有一个方法来记录调用上下文

private void LogCallingProgramContext()
        {
            OperationContext context = OperationContext.Current;
            if (context != null)
            {
                MessageProperties messageProperties = context.IncomingMessageProperties;
                var endpointProperty =
                    messageProperties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
                if (endpointProperty != null)
                {
                    string strCallingProgramContext = string.Format("Call from IP address {0} and port is {1}", endpointProperty.Address, endpointProperty.Port);
                    Logger.Info(strCallingProgramContext);
                }
            }
        }

我想要的是,有没有任何方法可以记录消息方法名称和参数

记录WCF soap消息参数和方法名称

您不能从代码的上下文中检索方法的参数值,只能检索它们的类型。恐怕你想直接做什么是不可能的。您可以将参数传递给日志记录方法以记录它们的值,也可以使用面向方面的编程系统,在该系统中,您感兴趣的函数将封装在您可以定义的一些代码中。

有很多AOP解决方案可供选择,我个人喜欢Castle。Windsor及其拦截器。