Castle Windsor Interceptor - 添加HTTP标头

时间:2016-03-14 18:30:03

标签: c#-4.0 castle-windsor interceptor castle-windsor-3

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

我环顾四周,看不到它的任何例子,或通过WcfPolicy。我正在尝试做的一个例子如下。

干杯,

杰米

 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()
                    }
                }
            };
        }
    }

1 个答案:

答案 0 :(得分:0)

最后,只需在每个Global.asax中添加它,将它放在库中会很不错但是重用的简单性可能是最好的选择。