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

时间:2014-08-29 05:44:22

标签: c# wcf

我正在使用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);

                }
            }
        }

我想要的是有什么方法可以记录消息方法名称和参数

1 个答案:

答案 0 :(得分:0)

您无法从代码的上下文中检索方法的参数值,只能检索其类型。我担心你想要做什么是不可能的。您可以将参数传递给日志记录方法以记录它们的值,也可以使用aspect oriented programming系统,其中您感兴趣的函数将包含在您可以定义的某些代码中。

有很多AOP解决方案可供选择,我个人喜欢Castle.Windsor及其interceptors