C# 4.0 Castle Windsor拦截器-添加HTTP头

C# 4.0 Castle Windsor拦截器-添加HTTP头,c#-4.0,castle-windsor,interceptor,castle-windsor-3,C# 4.0,Castle Windsor,Interceptor,Castle Windsor 3,我正在尝试添加一个拦截器来添加一个简单的HTTP头,有没有一种使用IInvocation的好方法 我环顾四周,没有看到任何例子,或者通过WcfPolicy。下面是我试图做的一个例子 干杯 杰米 最后,只要在每个Global.asax中添加它就好了,如果将它放在一个库中就好了,但也许简单而不是重用是最好的选择。最后,只要在每个Global.asax中添加它就好了,如果将它放在一个库中就好了,但也许简单而不是重用是最好的选择 public void Intercept(IInvocation in

我正在尝试添加一个拦截器来添加一个简单的HTTP头,有没有一种使用IInvocation的好方法

我环顾四周,没有看到任何例子,或者通过WcfPolicy。下面是我试图做的一个例子

干杯

杰米


最后,只要在每个Global.asax中添加它就好了,如果将它放在一个库中就好了,但也许简单而不是重用是最好的选择。

最后,只要在每个Global.asax中添加它就好了,如果将它放在一个库中就好了,但也许简单而不是重用是最好的选择

 public void Intercept(IInvocation invocation)
    {
        Guard.NotNull(() => invocation, invocation);

        invocation.Proceed();

        AddVersionHeaders(invocation);
    }

    private static void AddVersionHeaders(IInvocation invocation)
    {
        using (var scope = new OperationContextScope(OperationContext.Current))
        {
            OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = new HttpRequestMessageProperty
            {
                Headers =
                {
                    {
                        "X-Version", invocation.TargetType.Assembly.GetName().Version.ToString()
                    }
                }
            };
        }
    }