Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从自定义PostSharp属性内部访问请求标头_C#_.net_Asp.net Mvc_Asp.net Web Api_Postsharp - Fatal编程技术网

C# 从自定义PostSharp属性内部访问请求标头

C# 从自定义PostSharp属性内部访问请求标头,c#,.net,asp.net-mvc,asp.net-web-api,postsharp,C#,.net,Asp.net Mvc,Asp.net Web Api,Postsharp,我试图从自定义PostSharp属性中访问HttpRequestMessage 在我的Web API中,我可以这样做: string headerText = Request.Headers.GetValues("TestHeader").First(); 这在API控制器之外似乎不起作用 [Serializable] [AttributeUsage(AttributeTargets.Method)] public sealed class LogHeaderAttribute : OnMet

我试图从自定义PostSharp属性中访问
HttpRequestMessage

在我的Web API中,我可以这样做:

string headerText = Request.Headers.GetValues("TestHeader").First();
这在API控制器之外似乎不起作用

[Serializable]
[AttributeUsage(AttributeTargets.Method)]
public sealed class LogHeaderAttribute : OnMethodBoundaryAspect
{
    public override void OnEntry(MethodExecutionArgs args)
    {
        // Log Web API request header info here
    }
}

我发现我可以通过以下方式访问标题:

[Serializable]
[AttributeUsage(AttributeTargets.Method)]
public sealed class LogHeaderAttribute : OnMethodBoundaryAspect
{
    public override void OnEntry(MethodExecutionArgs args)
    {
        ApiController apiController = (ApiController)args.Instance;
        var context = apiController.ControllerContext;
        HttpRequestHeaders headers = context.Request.Headers;

        // Use Web API request header info here
        string headerText = headers.GetValues("MyHeader").First();
    }
}