2016-10-08 11 views
2

カスタムPostSharp属性の内側からHttpRequestMessageにアクセスしようとしています。私のウェブAPIでカスタムPostSharp属性内からリクエストヘッダにアクセスする

私はこのようにそれを行うことができます:

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 
    } 
} 

答えて

1

私は、ヘッダーをこのようにアクセスすることができますが見つかりました:

[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(); 
    } 
} 
関連する問題